/********************************/
/*	http://www.Joara.com		*/
/*								*/
/*	Merry-Christmas in 2006		*/
/*								*/
/*	Wrriten By Yeongeon Kim :)	*/
/********************************/

// $()함수화
function $(element){
//	try{
		var elementId = document.getElementById(element);
		return elementId;
//	}catch(e1){
//		try{
//			var elementId document.boardForm.elements[element]
//			return elementId;
//		}catch(e2){
//			alert(e1+e2);
//		}
//	}
}
var _JOARA_URL_MAP = "http://www.joara.com";
// map을 전역변수로 선언.
var map;
// miniMap을 전역변수로 선언.
var miniMap;
//아이콘 전역변수로 선언
var pointIcon;

/*************************************************************************************************************/
/**map 페이지 로딩시 *****************************************************************************************/
//최초 Body가 로딩 될때 호출됨
function mapLoad() {
	if (GBrowserIsCompatible()) {
		//map 전역변수에 객체 할당
		map = new GMap2($("map"));
		//map 최초로딩 센터와 줌레벨 지정
		map.setCenter(new GLatLng(36.31512514748051, 128.6171875), 7);		
		//map에 각종 기능 추가
		map.addControl(new GLargeMapControl());		//왼편에 길다란 줌레벨바
		map.addControl(new GMapTypeControl());		//오른편 상단의 지도종류버튼
		map.addControl(new GScaleControl());		//왼편 하단의 축척		
		miniMap = new GOverviewMapControl(new GSize(200,180));
		map.addControl(miniMap); 					//오른편 하단의 미니맵 디폴트:가로120		
		//map의 최초로딩 mapType 지정
		map.setMapType(G_HYBRID_MAP);		
		//마우스 Events에 따른 Zoom기능 설정
		map.enableContinuousZoom();		//자연스러운 줌기능
		map.enableDoubleClickZoom();	//더블클릭시에 줌기능

		
		//현재 보이는 map 영역의좌표값들 받아오기
		var nowSouthWestLat = getSouthWestLat();
		var nowSouthWestLng = getSouthWestLng();
		var nowNorthEastLat = getNorthEastLat();
		var nowNorthEastLng = getNorthEastLng();

		//Ajax처리를 위해 보내기 - 최초로딩시
		doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);
		//개발용 각종 메세지 출력 함수
		printDev();
		
		//각종 Events 통합처리되는 부분
		addListener("zoom");

		//동해 표기
		map.removeOverlay(tempMarker);
		addTempMarker();
		
		//마우스 Events 처리직후 처리되는 부분
		GEvent.addListener(map, "moveend", function() {
			

			//개발용 각종 메세지 출력 함수
			printDev();
			//현재 보이는 map 영역의좌표값들 받아오기
			var nowSouthWestLat = getSouthWestLat();
			var nowSouthWestLng = getSouthWestLng();
			var nowNorthEastLat = getNorthEastLat();
			var nowNorthEastLng = getNorthEastLng();
			//Ajax처리를 위해 보내기 - 이벤트 발생시
			doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);
		});
	}
}

	/***************************************************************/
	/**좌표를 가져오기위한 Ajax통신*********************************/
	//Ajax를 이용해 보낸다
	function doMapPointSubmit(getNowSouthWestLat, getNowSouthWestLng, getNowNorthEastLat, getNowNorthEastLng){
		try{
			var ajax = new JoaraAjax();
			ajax.Method		= 'POST'; 
			ajax.Action		= './mapLoad/mapDataLoad.html'; 
			ajax.onError	= error;
			ajax.onComplete	= getMapDataResult;
			ajax.addParam("NowSouthWestLat", getNowSouthWestLat);
			ajax.addParam("NowSouthWestLng", getNowSouthWestLng);
			ajax.addParam("NowNorthEastLat", getNowNorthEastLat);
			ajax.addParam("NowNorthEastLng", getNowNorthEastLng);
			ajax.submit();
		}catch(e){
			alert("Error 0102: "+e);
		} 
	}
	//Ajax를 이용해 받는다
	function getMapDataResult(text){
		try{
			/*
			text = decodeURI(text);
			//받은 값을 고스란히 화면에 뿌리는 메소드에게 맡긴다
			addOverayMarker(text);
			*/
			var objXML = oXmlHttp.responseXML;
			addOverayMarkerXML(objXML);
		}catch(e){
			alert("Error 0103: "+e);
		}
	}

	var Xmap;
	var Xlat;
	var Xlng;
	var Xidx;
	var Xno;
	//map에 marker를 표시하는 메소드
	function addOverayMarkerXML(xdoc){	
		Xmap		= xdoc.getElementsByTagName("map");
		Xlat		= xdoc.getElementsByTagName("lat");
		Xlng		= xdoc.getElementsByTagName("lng");
		Xidx		= xdoc.getElementsByTagName("idx");
		Xno			= xdoc.getElementsByTagName("no");
		
		for(i=0; i<Xmap.length; i++){
			//해당 좌표에 marker 표시
			var point = new GLatLng(parseFloat(Xlat[i].firstChild.nodeValue), parseFloat(Xlng[i].firstChild.nodeValue));
			//marker 생성 매소드를 통해서 InfoWindow까지 만듦
			map.addOverlay(createMarker(point , Xidx[i].firstChild.nodeValue, Xno[i].firstChild.nodeValue));
		}
	}


	//map에 marker를 표시하는 메소드
	function addOverayMarker(getMarkerPoints){
		//각 좌표를 ";"구분
		//alert("addOverayMarker: "+ getMarkerPoints);
		var markerPoint = getMarkerPoints.split("{#;;;#}");
		for(var i=0; i<markerPoint.length-1; i++){ 
			//좌표의 lat과 lng을 ":"구분 
			var markerPointLatLng = markerPoint[i].split("{#:::#}");
			var markerLat = markerPointLatLng[0];	// 0 위도	lat
			var markerLng = markerPointLatLng[1];	// 1 경도	lng	
			var markerIdx = markerPointLatLng[2];	// 2 유일값	idx
			var markerNo  = markerPointLatLng[3];	// 3 각번호	j
			//해당 좌표에 marker 표시
			var point = new GLatLng(markerLat, markerLng);
			//marker 생성 매소드를 통해서 InfoWindow까지 만듦
			map.addOverlay(createMarker(point , markerIdx, markerNo));
		}
	}

	//map의 SouthWest-NorthEast(남서-북동)의 좌표값 구하기
	//현재 영역의 좌표값을 위한 전역변수 선언
	var southWest;
	var northEast;
	//현재 표시 영역의 각 좌표처리를 위한 전역변수 선언
	var southWestLat;
	var southWestLng;
	var northEastLat;
	var northEastLng;

	//SouthWest_NorthEast 값 가져오기
	function getSouthWest_NorthEast(){
		try{
			var bounds	= map.getBounds();
			southWest	= bounds.getSouthWest();
			northEast	= bounds.getNorthEast();
			//현재 표시 영역의 각 좌표처리
			southWestLat = southWest.lat();
			southWestLng = southWest.lng();
			northEastLat = northEast.lat();
			northEastLng = northEast.lng();
		//	$("map_msg").innerHTML = "southWest:"+ southWest +", northEast:"+ northEast;
		}catch(e){
			alert("Error 1300 : "+ e);
			$("map_msg").innerHTML = " Fail to load: southWest,northEast";
		}
	}
	//현재 보이는 영역의 남서 위도가져오기
	function getSouthWestLat(){
		try{
			var bounds	= map.getBounds();
			southWest	= bounds.getSouthWest();
			southWestLat = southWest.lat();
			return southWestLat;
		}catch(e){
			alert("Error 1310 : "+ e);
			return false;
		}
	}
	//현재 보이는 영역의 남서 경도가져오기
	function getSouthWestLng(){
		try{
			var bounds	= map.getBounds();
			southWest	= bounds.getSouthWest();
			southWestLng = southWest.lng();
			return southWestLng;
		}catch(e){
			alert("Error 1320 : "+ e);
			return false;
		}
	}
	//현재 보이는 영역의 북동 위도가져오기
	function getNorthEastLat(){
		try{
			var bounds	= map.getBounds();
			northEast	= bounds.getNorthEast();
			northEastLat = northEast.lat();
			return northEastLat;
		}catch(e){
			alert("Error 1330 : "+ e);
			return false;
		}
	}
	//현재 보이는 영역의 북동 경도가져오기
	function getNorthEastLng(){
		try{
			var bounds	= map.getBounds();
			northEast	= bounds.getNorthEast();
			northEastLng = northEast.lng();
			return northEastLng;
		}catch(e){
			alert("Error 1340 : "+ e);
			return false;
		}
	}
	/***************************************************************/
	/***************************************************************/

	/**************************************************************/
	/**좌표에 대한 데이터를 가져오기위한 Ajax통신******************/
	//Ajax를 이용해 보낸다
	function doMapDataInfomationSubmit(markerIdx){
		try{
			var ajax = new JoaraAjax();
			ajax.Method				= 'POST'; 
			ajax.Action				= './mapLoad/mapDataLoad_Information.html'; 
			ajax.onError			= error;
			ajax.onComplete			= getMapDataInfomationResult;
			ajax.addParam("markerIdx", markerIdx);
			ajax.submit();
		}catch(e){
			alert("Error 0112: "+ e);
		} 
	}

	//Ajax를 이용해 받는다
	function getMapDataInfomationResult(text){
		try{
			text = decodeURI(text);
			//받은 값을 고스란히 화면에 뿌리는 메소드에게 맡긴다
			makeInfoWindow(text);
		}catch(e){
			alert("Error 0113: "+ e);
		}
	}

	//marker 생성 매소드 - 해당 marker에 대해 
	// click시 Ajax를 이용해 해당 데이터들을 가져와서 infoWindow를 띄운다
	//해당 marker의 보관을 위한 임시 전역변수 keepMarker 생성
	var tempMarker = null;
	function createMarker(point, markerIdx, markerNo) {
		pointIcon = new GIcon();
		pointIcon.shadow = _JOARA_URL_MAP +"/img/mapimg/shadow_01.png";
		pointIcon.iconSize = new GSize(24, 32);
		pointIcon.shadowSize = new GSize(42, 32);
		pointIcon.iconAnchor = new GPoint(12, 32);
		pointIcon.infoWindowAnchor = new GPoint(12, 10);
		pointIcon.infoShadowAnchor = new GPoint(21, 32);
		//var letter = String.fromCharCode("A".charCodeAt(0) + parseInt(markerNo));
		pointIcon.image = _JOARA_URL_MAP +"/img/mapimg/markers/markerNo"+ parseInt(markerNo) +".png";

	  var marker = new GMarker(point, pointIcon);
	  GEvent.addListener(marker, "click", function() {
		//임시 marker 초기화하기
		tempMarker = null;
		//해당 marker 보관하기
		makeTempMarker(marker);
		//info 레이어를 Ajax를 이용해 생성하기 
		doMapDataInfomationSubmit(markerIdx);
	  });
	  return marker;
	}

	//marker의 임시보관
	function makeTempMarker(marker) {
		tempMarker = marker;
	}

	function makeInfoWindow(getMarkerInfoWindowDatas){
		//alert(getMarkerInfoWindowDatas);
		//각 데이터를 ":"구분
		var MarkerInfoWindowData = getMarkerInfoWindowDatas.split("{#:::#}");
		var MarkerInfoWindowData_title			= MarkerInfoWindowData[0];	// 0 제목		title
		var MarkerInfoWindowData_content		= MarkerInfoWindowData[1];	// 1 내용		content
		var MarkerInfoWindowData_clipfile		= MarkerInfoWindowData[2];	// 2 첨부파일	clipfile
		var MarkerInfoWindowData_yard_id		= MarkerInfoWindowData[3];	// 3 뜰아이디	yard_id
		var MarkerInfoWindowData_member_name	= MarkerInfoWindowData[4];	// 4 이름		member_name
		var MarkerInfoWindowData_clipfile_width	= MarkerInfoWindowData[5];	// 5 사이즈		width
		var MarkerInfoWindowData_clipfile_height= MarkerInfoWindowData[6];	// 6 사이즈		height
		var MarkerInfoWindowData_keyword		= MarkerInfoWindowData[7];	// 7 키워드		keyword
		var MarkerInfoWindowData_idx			= MarkerInfoWindowData[8];	// 8 고유값		idx
		var MarkerInfoWindowData_count			= MarkerInfoWindowData[9];	// 9 갯수		row
		var MarkerInfoWindowData_local_name		= MarkerInfoWindowData[10];	// 10장소명		local_name
		var MarkerInfoWindowData_mapidx			= MarkerInfoWindowData[11];	// 11mapidx		mapidx
		if(!checkValueExist(MarkerInfoWindowData_clipfile)){
			var clipfile = "";
		}else{
			var clipfile_width;
			var clipfile_height;
			//이미지 크기지정
			if(parseInt(MarkerInfoWindowData_clipfile_width)>180){
				clipfile_width	= 180;
			}else{
				clipfile_width		= MarkerInfoWindowData_clipfile_width;
			}
			if(parseInt(MarkerInfoWindowData_clipfile_height)>135){
				clipfile_height	= 135;
			}else{
				clipfile_height		= MarkerInfoWindowData_clipfile_height;
			}
			var MarkerInfoWindowData_clipfile_path		 = "http://files.joara.com/map_data_file/";
			var clipfile  = "<img src='";
				clipfile += MarkerInfoWindowData_clipfile_path + MarkerInfoWindowData_clipfile;
				clipfile += "' width='"+ clipfile_width +"' height='"+ clipfile_height +"'>";
		}
		var strLinkURL = _JOARA_URL_MAP +"/community/map/mapBoardView.html";
		var strHTML	 = "";

		//말풍선 테이블 시작
		strHTML += "<table width='300'>";
			strHTML += "<tr height='25'>";
				strHTML += "<td>";

				//갯수에 따른 처리
				if(MarkerInfoWindowData_count>0){

					//상단 장소명 부분 테이블 시작
					strHTML += "<table height='25' width='300'>";
						strHTML += "<tr height='25'>";
							strHTML += "<td width='220' align='left' valign='bottom'>&nbsp;";
								//장소명
								strHTML += "<a href='"+ _JOARA_URL_MAP +"/community/map/mapBoardList.html?idx="+ MarkerInfoWindowData_mapidx +"'>"+"<b>"+ MarkerInfoWindowData_local_name +"</b>"+"</a>";
							strHTML += "</td>";
							strHTML += "<td width='80' align='right' valign='bottom'>";
								//+더추가
								strHTML += "<a href='javascript:addLocal("+ MarkerInfoWindowData_mapidx +");'><img src='"+ _JOARA_URL_MAP +"/img/mapimg/btn_add.gif' align='absmiddle' border='0'></a>";
							strHTML += "</td>";
						strHTML += "</tr>";
					strHTML += "</table>";
					//상단 장소명 부분 테이블 끝
				strHTML += "</td>";
			strHTML += "</tr>";			
			strHTML += "<tr valign='top'>";
				strHTML += "<td align='center'>";
					//주요 데이타 출력 테이블 시작
					strHTML += "<table width='300'>";
						//중간 분리선 시작
						strHTML += "<tr>";
							strHTML += "<td width='5'></td><td width='290' height='1' bgcolor='#000000' ></td><td width='5'></td>";
						strHTML += "</tr>";
						//중간 분리선 끝
						strHTML += "<tr>";
							strHTML += "<td colspan='3'>";
								strHTML += "<table width='300'>";
									strHTML += "<tr>";
										strHTML += "<td align='left'>";
											//제목
											strHTML += "&nbsp;키워드&nbsp;:&nbsp;";
											strHTML += "<a href='"+ _JOARA_URL_MAP +"/community/map/mapBoardView.html?idx="+ MarkerInfoWindowData_idx +"&mapidx="+ MarkerInfoWindowData_mapidx +"'>";											
											strHTML += MarkerInfoWindowData_title;											
											strHTML += "</a>";
											strHTML += "<a href='"+ _JOARA_URL_MAP +"/community/map/mapBoardView.html?idx="+ MarkerInfoWindowData_idx +"&mapidx="+ MarkerInfoWindowData_mapidx +"' target='_Wmap'>";
											strHTML += "<img src='"+ _JOARA_URL_MAP +"/img/mapimg/img_popup_window.gif' align='absmiddle' border='0'>";
											strHTML += "</a>";
										strHTML += "</td>";
										strHTML += "<td align='right'>";
											//이름
											strHTML += MarkerInfoWindowData_member_name;
										strHTML += "</td>";
									strHTML += "</tr>";
								strHTML += "</table>";
							strHTML += "</td>";
						strHTML += "</tr>";
						strHTML += "<tr>";
							strHTML += "<td valign='top' colspan='3'>";
								strHTML += "<table>";
									strHTML += "<tr>";
										//이미지 존재 유무에 따른 다른 테이블 작성
										//이미지가 있는 글과 없는 글을 체크해서 테이블을 다르게 표현
										if(!checkValueExist(MarkerInfoWindowData_clipfile)){
											strHTML += "<td width='300' valign='top'>&nbsp;"; 
												//내용
												strHTML += MarkerInfoWindowData_content;
											strHTML += "</td>";
										}else{
											strHTML += "<td width='180' align='center' valign='top'>&nbsp;";
												//이미지
												strHTML += clipfile;
											strHTML += "</td>";
											strHTML += "<td width='120' align='left' valign='top'>&nbsp;";
												//내용
												strHTML += MarkerInfoWindowData_content; 
											strHTML += "</td>";
										}
									strHTML += "</tr>";
								strHTML += "</table>";												
							strHTML += "</td>";
						strHTML += "</tr>";
						//중간 분리선 시작
						strHTML += "<tr>";
							strHTML += "<td width='5'></td><td width='290' height='1' bgcolor='#000000' ></td><td width='5'></td>";							
						strHTML += "</tr>";
						//중간 분리선 끝
					strHTML += "</table>";
					//주요 데이타 출력 테이블 끝									
				strHTML += "</td>";
			strHTML += "</tr>";			
			strHTML += "<tr>";
				strHTML += "<td>";
					//하단 관련글 부분 테이블 시작
					strHTML += "<table width='300'>";
						strHTML += "<tr>";
							strHTML += "<td width='220' align='left'>&nbsp;";
								//관련글
								strHTML += "<a href='"+ _JOARA_URL_MAP +"/community/map/mapBoardList.html?idx="+MarkerInfoWindowData_mapidx+"&yard_id="+MarkerInfoWindowData_yard_id+"&cate_code="+MarkerInfoWindowData_keyword+"'>"; 
								strHTML += "관련글 "+ MarkerInfoWindowData_count +"건";
								strHTML += "</a>";
							strHTML += "</td>";
							strHTML += "<td width='80' align='right'>&nbsp;";
								//+글보기
								strHTML += "<a href='"+ _JOARA_URL_MAP +"/community/map/mapBoardView.html?idx="+ MarkerInfoWindowData_idx +"&mapidx="+ MarkerInfoWindowData_mapidx +"'>";
								strHTML += "+글보기";
								strHTML += "</a>";
							strHTML += "</td>";
						strHTML += "</tr>";
					strHTML += "</table>";
					//하단 관련글 부분 테이블 끝
				}else{
					//해당 값이 없을때는 추가버튼만 작성
					strHTML += "<table width='300'>";
						strHTML += "<tr>";
							strHTML += "<td width='250' align='center' valign='middle'>";
								//+더추가
								strHTML += "<b>"+ MarkerInfoWindowData_local_name +"</b>에 대한 내용이 없습니다.<br>내용을 추가해주세요.<br><br>";
								if(MarkerInfoWindowData_mapidx==undefined){
									strHTML += "Error: 관리자에게 문의해주세요";
								}else{
									strHTML += "<a href='javascript:addLocal("+ MarkerInfoWindowData_mapidx +");'>+ <b>"+ MarkerInfoWindowData_local_name +"</b>에 <img src='"+ _JOARA_URL_MAP +"/img/mapimg/btn_add.gif' align='absmiddle' border='0'></a>";
								}
							strHTML += "</td>";
						strHTML += "</tr>";
					strHTML += "</table>";
				}
				strHTML += "</td>";
			strHTML += "</tr>";
		strHTML += "</table>";
		//말풍선 테이블 끝

		tempMarker.openInfoWindowHtml(strHTML);
	}
	/**************************************************************/
	//addLocal함수: 해당 지역에 추가할때 팝업 처리
	function addLocal(getMapCode){
		newWindow( _JOARA_URL_MAP +'/community/map/mapBoardFormMini.html?mapidx='+getMapCode , 'boardFormMini', 'width=420, height=400, scrollbars=yes');
	}


	/**************************************************************/
	/**************************************************************/

/*************************************************************************************************************/
/*************************************************************************************************************/


/*************************************************************************************************************/
/**map 페이지 로딩시 *****************************************************************************************/
//최초 Body가 로딩 될때 호출됨
function mapLoadList(getLat, getLng, getZoom, getMapIdx, getLocalName) {
	//alert("function mapLoadList()");
/*
	pointIcon = new GIcon();
	pointIcon.image = "http://www.joara.com/img/mapimg/marker_01.png";
	pointIcon.shadow = "http://www.joara.com/img/mapimg/shadow_01.png";
	pointIcon.iconSize = new GSize(24, 32);
	pointIcon.shadowSize = new GSize(42, 32);
	pointIcon.iconAnchor = new GPoint(12, 32);
	pointIcon.infoWindowAnchor = new GPoint(12, 10);
	pointIcon.infoShadowAnchor = new GPoint(21, 32);
*/
	if (GBrowserIsCompatible()) {
		//map 전역변수에 객체 할당
		map = new GMap2($("map"));
	
		//map 최초로딩 센터와 줌레벨 지정
		map.setCenter(new GLatLng(parseFloat(getLat), parseFloat(getLng)), parseInt(getZoom));		

		//map에 각종 기능 추가
		map.addControl(new GLargeMapControl());		//왼편에 길다란 줌레벨바
		map.addControl(new GMapTypeControl());		//오른편 상단의 지도종류버튼
		map.addControl(new GScaleControl());		//왼편 하단의 축척		
		miniMap = new GOverviewMapControl(new GSize(120,80));
		map.addControl(miniMap); 					//오른편 하단의 미니맵 디폴트:가로120		
		//map의 최초로딩 mapType 지정
		map.setMapType(G_HYBRID_MAP);		
		//마우스 Events에 따른 Zoom기능 설정
		map.enableContinuousZoom();		//자연스러운 줌기능
		map.enableDoubleClickZoom();	//더블클릭시에 줌기능

		//현재 보이는 map 영역의좌표값들 받아오기
		var nowSouthWestLat = getSouthWestLat();
		var nowSouthWestLng = getSouthWestLng();
		var nowNorthEastLat = getNorthEastLat();
		var nowNorthEastLng = getNorthEastLng();


		//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
		//doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);

		//Ajax처리를 위해 보내기 - 최초로딩시
		doMapPointListSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng, getMapIdx);
		
		/********************************************************/
		/********************************************************/
		//map 중심잡기
		//해당 좌표에 marker 표시
		map.setCenter(new GLatLng(getLat, getLng), parseInt(getZoom));
		//map 에 전역변수 markerModify표시 
		var viewMarker = new GMarker(new GLatLng(getLat, getLng), pointIcon);
		map.addOverlay(viewMarker);		
			strHTMLView  = "<table border=0 cellspacing=0 cellpadding=0>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle width=30%>";
						strHTMLView += "<b>"+ getLocalName +"</b>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
			strHTMLView += "</table>";
		viewMarker.openInfoWindowHtml(strHTMLView);
		/********************************************************/
		/********************************************************/

		//개발용 각종 메세지 출력 함수
		printDev();				
		//마우스 Events 처리직후 처리되는 부분
		GEvent.addListener(map, "moveend", function() {
			//개발용 각종 메세지 출력 함수
			printDev();
			//현재 보이는 map 영역의좌표값들 받아오기
			var nowSouthWestLat = getSouthWestLat();
			var nowSouthWestLng = getSouthWestLng();
			var nowNorthEastLat = getNorthEastLat();
			var nowNorthEastLng = getNorthEastLng();

			//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
			//doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);

			//Ajax처리를 위해 보내기 - 이벤트 발생시
			doMapPointListSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng, getMapIdx);
		});
		//각종 Events 통합처리되는 부분
		addListener("zoom");
	}
}

	/**************************************************************/
	/** 현재 보이는 영역의 좌표 데이터들을 가져온다 ***************/
	//Ajax를 이용해 보낸다
	function doMapPointListSubmit(getNowSouthWestLat, getNowSouthWestLng, getNowNorthEastLat, getNowNorthEastLng, getMapIdx){
		try{
			var ajax = new JoaraAjax();
			ajax.Method		= 'POST'; 
			ajax.Action		= './mapLoad/mapDataLoadList.html'; 
			ajax.onError	= error;
			ajax.onComplete	= getMapDataListResult;
			ajax.addParam("NowSouthWestLat", getNowSouthWestLat);
			ajax.addParam("NowSouthWestLng", getNowSouthWestLng);
			ajax.addParam("NowNorthEastLat", getNowNorthEastLat);
			ajax.addParam("NowNorthEastLng", getNowNorthEastLng);
			ajax.addParam("mapidx", getMapIdx);
			ajax.submit();
		}catch(e){
			alert("Error 0340: "+e);
		} 
	}
	//Ajax를 이용해 받는다
	function getMapDataListResult(text){
		try{
			/*
			text = decodeURI(text);
			//alert("getMapDataListResult: "+ text);
			//받은 값을 고스란히 화면에 뿌리는 메소드에게 맡긴다
			addOverayMarker(text);
			*/
			var objXML = oXmlHttp.responseXML;
			addOverayMarkerXML(objXML);
		}catch(e){
			alert("Error 0350: "+e);
		}
	}
	/**************************************************************/
	/**************************************************************/

/*************************************************************************************************************/
/*************************************************************************************************************/


/*************************************************************************************************************/
/**map 페이지 로딩시 *****************************************************************************************/
//최초 Body가 로딩 될때 호출됨
var strHTMLView; //전역변수로 선언
function mapLoadView(getLat, getLng, getZoom, getIdx, getMapIdx, getTitle){

	pointIcon = new GIcon();
	pointIcon.image = _JOARA_URL_MAP +"/img/mapimg/marker_01.png";
	pointIcon.shadow = _JOARA_URL_MAP +"/img/mapimg/shadow_01.png";
	pointIcon.iconSize = new GSize(24, 32);
	pointIcon.shadowSize = new GSize(42, 32);
	pointIcon.iconAnchor = new GPoint(12, 32);
	pointIcon.infoWindowAnchor = new GPoint(12, 10);
	pointIcon.infoShadowAnchor = new GPoint(21, 32);

	if (GBrowserIsCompatible()) {
		//map 전역변수에 객체 할당
		map = new GMap2($("map"));
		
		//map 중심잡기
		//해당 좌표에 marker 표시
		map.setCenter(new GLatLng(parseFloat(getLat), parseFloat(getLng)), parseInt(getZoom));

		//map에 각종 기능 추가
		map.addControl(new GSmallMapControl());		//왼편에 작은 줌레벨
		map.addControl(new GMapTypeControl());		//오른편 상단의 지도종류버튼
		map.addControl(new GScaleControl());		//왼편 하단의 축척		
		miniMap = new GOverviewMapControl(new GSize(120,80));
	//	map.addControl(miniMap); 					//오른편 하단의 미니맵 디폴트:가로120
		//map의 최초로딩 mapType 지정
		map.setMapType(G_HYBRID_MAP);
		//마우스 Events에 따른 Zoom기능 설정
		map.enableContinuousZoom();		//자연스러운 줌기능
		map.enableDoubleClickZoom();	//더블클릭시에 줌기능
		//현재 보이는 map 영역의좌표값들 받아오기
		var nowSouthWestLat = getSouthWestLat();
		var nowSouthWestLng = getSouthWestLng();
		var nowNorthEastLat = getNorthEastLat();
		var nowNorthEastLng = getNorthEastLng();

	try{
		//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
		//doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);

		//Ajax처리를 위해 보내기 - 최초로딩시
		//doMapPointViewSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng, getMapIdx, getIdx);
	}catch(e){
		alert("Error 5555 : "+ e);
	}
		/********************************************************/
		/********************************************************/
		//map 에 전역변수 markerModify표시 
		var viewMarker = new GMarker(new GLatLng(parseFloat(getLat), parseFloat(getLng)), pointIcon);
		map.addOverlay(viewMarker);		
			strHTMLView  = "<table border=0 cellspacing=0 cellpadding=0>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle width=30%>";
						strHTMLView += "<b>"+ getTitle +"</b>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
			strHTMLView += "</table>";
		viewMarker.openInfoWindowHtml(strHTMLView);
		/********************************************************/
		/********************************************************/

		//마우스 dbclick 할때 처리되는 부분
		GEvent.addListener(map, "moveend", function(marker, point) {
		//	map.openInfoWindowHtml(new GLatLng(Lat, Lng), strHTMLView);
			//개발용 각종 메세지 출력 함수
			printDev();
			//현재 보이는 map 영역의좌표값들 받아오기
			var nowSouthWestLat = getSouthWestLat();
			var nowSouthWestLng = getSouthWestLng();
			var nowNorthEastLat = getNorthEastLat();
			var nowNorthEastLng = getNorthEastLng();

			//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
			//doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);

		
			//Ajax처리를 위해 보내기 - 이벤트 발생시
			//doMapPointViewSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng, getMapIdx, getIdx);
		});

		GEvent.addListener(viewMarker, "click", function() {
			viewMarker.openInfoWindowHtml(strHTMLView);
		});

		//각종 Events 통합처리되는 부분
		addListener("zoom");

	}
}

	/**************************************************************/
	/** 현재 보이는 영역의 좌표 데이터들을 가져온다 ***************/
	//Ajax를 이용해 보낸다
	function doMapPointViewSubmit(getNowSouthWestLat, getNowSouthWestLng, getNowNorthEastLat, getNowNorthEastLng, getMapIdx, getIdx){
		try{
			var ajax = new JoaraAjax();
			ajax.Method		= 'POST'; 
			ajax.Action		= './mapLoad/mapDataLoadView.html'; 
			ajax.onError	= error;
			ajax.onComplete	= getMapDataListResult;
			ajax.addParam("NowSouthWestLat", getNowSouthWestLat);
			ajax.addParam("NowSouthWestLng", getNowSouthWestLng);
			ajax.addParam("NowNorthEastLat", getNowNorthEastLat);
			ajax.addParam("NowNorthEastLng", getNowNorthEastLng);
			ajax.addParam("idx", getIdx);
			ajax.addParam("mapidx", getMapIdx);
			ajax.submit();
		}catch(e){
			alert("Error 3440: "+e);
		} 
	}
	//Ajax를 이용해 받는다
	function getMapDataViewResult(text){
		try{
			/*
			text = decodeURI(text);
			//alert("getMapDataListResult: "+ text);
			//받은 값을 고스란히 화면에 뿌리는 메소드에게 맡긴다
			addOverayMarker(text);
			*/
			var objXML = oXmlHttp.responseXML;
			addOverayMarkerXML(objXML);
		}catch(e){
			alert("Error 3450: "+e);
		}
	}
	/**************************************************************/
	/**************************************************************/
/*************************************************************************************************************/
/*************************************************************************************************************/


/*************************************************************************************************************/
/**글쓰기 페이지 로딩시***************************************************************************************/
//최초 뜰에서 글쓰기 폼의 Body가 로딩 될때 호출됨
//글쓰기에서 포인트를 한개만 찍기 위해 구분하는 전역변수 
var mapWritePoint = 0;
//해당영역의 룸레벨을 구하기 위한 전역 변수 선언
var mapLoadWriteFormBounds;
var mapLoadWriteFormZoomLevel;
//List의 좌표를 위한 전역변수선언
var mapListLat;
var mapListLng;
var mapListZoom;
function mapLoadWriteForm(){
//function mapLoadWriteForm(getLat, getLng, getZoom) {
//('37.57978663117985', '126.97718024253845', '2')
	pointIconNew = new GIcon();
	pointIconNew.image = _JOARA_URL_MAP +"/img/mapimg/point_01_modify.png";
	pointIconNew.shadow = _JOARA_URL_MAP +"/img/mapimg/point_01_shadow.png";
	/*
	pointIcon.iconSize = new GSize(44, 30);
	pointIcon.shadowSize = new GSize(58, 30);
	pointIcon.iconAnchor = new GPoint(22, 30);
	pointIcon.infoWindowAnchor = new GPoint(12, 30);
	pointIcon.infoShadowAnchor = new GPoint(26, 30);
	*/	
	pointIconNew.iconSize = new GSize(24, 32);
	pointIconNew.shadowSize = new GSize(42, 32);
	pointIconNew.iconAnchor = new GPoint(12, 32);
	pointIconNew.infoWindowAnchor = new GPoint(12, 10);
	pointIconNew.infoShadowAnchor = new GPoint(21, 32);

	pointIcon = new GIcon();
	pointIcon.image = _JOARA_URL_MAP +"/img/mapimg/marker_01.png";
	pointIcon.shadow = _JOARA_URL_MAP +"/img/mapimg/shadow_01.png";
	pointIcon.iconSize = new GSize(24, 32);
	pointIcon.shadowSize = new GSize(42, 32);
	pointIcon.iconAnchor = new GPoint(12, 32);
	pointIcon.infoWindowAnchor = new GPoint(12, 10);
	pointIcon.infoShadowAnchor = new GPoint(21, 32);

	if (GBrowserIsCompatible()) {
		//map 전역변수에 객체 할당
		map = new GMap2($("map"));
		//map 최초로딩 센터와 줌레벨 지정
		//map.setCenter(new GLatLng(35.13733514756361, 129.09959077835083), 17);//대연동
		
		//최초로딩 값 받아오는 Ajax
		//map.setCenter(new GLatLng(getLat, getLng), parseInt(getZoom));
		map.setCenter(new GLatLng(37.52199719006801, 126.97941184043884), 13);

		//map에 각종 기능 추가
		map.addControl(new GLargeMapControl());					//왼편에 큰 줌레벨
		map.addControl(new GMapTypeControl());					//오른편 상단의 지도종류버튼		
		miniMap = new GOverviewMapControl(new GSize(120,80));	//오른편 하단의 미니맵
		map.addControl(miniMap); 								//오른편 하단의 미니맵 디폴트:가로120		
		//map의 최초로딩 mapType 지정
		map.setMapType(G_HYBRID_MAP);		
		//마우스 Events에 따른 Zoom기능 설정
		map.enableContinuousZoom();		//자연스러운 줌기능
		map.enableDoubleClickZoom();	//더블클릭시에 줌기능	
		//해당영역의 룸레벨
		getMapLoadWriteFormZoomLevel();	
		/*
		var getNowZoomLevel = getMapLoadWriteFormZoomLevel();		
		$("map_zoom").value = getNowZoomLevel;
		*/
		//개발용 각종 메세지 출력 함수
		printDev();

		//현재 보이는 map 영역의좌표값들 받아오기
		var nowSouthWestLat = getSouthWestLat();
		var nowSouthWestLng = getSouthWestLng();
		var nowNorthEastLat = getNorthEastLat();
		var nowNorthEastLng = getNorthEastLng();
		//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
		doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);
		
		//마우스 Events 처리직후 처리되는 부분
		GEvent.addListener(map, "moveend", function() {
			//개발용 각종 메세지 출력 함수
			//printDev();

			//해당영역의 룸레벨
			getMapLoadWriteFormZoomLevel();

			//현재 보이는 map 영역의좌표값들 받아오기
			var nowSouthWestLat = getSouthWestLat();
			var nowSouthWestLng = getSouthWestLng();
			var nowNorthEastLat = getNorthEastLat();
			var nowNorthEastLng = getNorthEastLng();
			//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
			doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);

			/*
			var getNowZoomLevel = getMapLoadWriteFormZoomLevel();		
			$("map_zoom").value = getNowZoomLevel;
			*/
		});	

		//마우스 click 할때 처리되는 부분
		GEvent.addListener(map, "click", function(markerWrite, point) {
			if(markerWrite){
				map.removeOverlay(markerWrite);
				$("map_lat").value = "";
				$("map_lng").value = "";
			}else{
				//포인트가 0개면 marker를 생성한다
				if(mapWritePoint==0){
					mapWritePoint = 1;
					map.addOverlay(new GMarker(point, pointIconNew));
					$("map_lat").value = point.lat();
					$("map_lng").value = point.lng();
				}else{
					//alert("이미 다른곳이 선택되어 있습니다.");
					//map 초기화
					clearOverlays();
					//새로운 좌표를 입력
					map.addOverlay(new GMarker(point, pointIconNew));
					$("map_lat").value = point.lat();
					$("map_lng").value = point.lng();
				}
			}
		});
		
		GEvent.addListener(map, "zoomend", function(marker, point) {
			//map 초기화
		//	clearOverlays();
		//	map.addOverlay(new GMarker(point, pointIcon));	
			//$("map_lat").value = point.lat();
			//$("map_lng").value = point.lng();			

			//입력된 좌표값 초기화
			//$("map_lat").value = "";
			//$("map_lng").value = "";
			
			//해당영역의 룸레벨
			getMapLoadWriteFormZoomLevel();
			/*
			var getNowZoomLevel = getMapLoadWriteFormZoomLevel();		
			$("map_zoom").value = getNowZoomLevel;
			*/

			//포인트 초기화
		//	if(mapWritePoint==1){
		//		mapWritePoint = 0;
		//	}
		});	

		//각종 Events 통합처리되는 부분
		addListener("zoom");	//이벤트가 zoom 일때
	}
}


	function getMapLoadWriteFormZoomLevel(){
		//해당영역의 룸레벨
		mapLoadWriteFormBounds	 = map.getBounds();
		mapLoadWriteFormZoomLevel= map.getBoundsZoomLevel(mapLoadWriteFormBounds);
		$("map_zoom").value = mapLoadWriteFormZoomLevel;
	}
	//글 작성-수정시 map의 줌레벨을 증가 혹은 감소 시킴 
	function writeFormZoomOut(){
		map.zoomOut();
	}
	function writeFormZoomIn(){
		map.zoomIn();
	}
	/***************************************************************/
	/***************************************************************/

/*************************************************************************************************************/
/*************************************************************************************************************/


/*************************************************************************************************************/
/**글수정 페이지 로딩시***************************************************************************************/
//최초 뜰에서 글수정 폼의 Body가 로딩 될때 호출됨
//글 수정하기에서 포인트를 한개만 찍기 위해 구분하는 전역변수
var mapModifyPoint = 0;
var getPointModify = null;
var markerModify   = null;
var pointIconModify= null;
function mapLoadModifyForm(idx, Lat, Lng, Zoom) {		
	//입력되어 있는 데이터의 marker를 위해
	pointIcon = new GIcon();
	pointIcon.image = _JOARA_URL_MAP +"/img/mapimg/marker_01.png";
	pointIcon.shadow = _JOARA_URL_MAP +"/img/mapimg/shadow_01.png";
	/*
	pointIcon.iconSize = new GSize(44, 30);
	pointIcon.shadowSize = new GSize(58, 30);
	pointIcon.iconAnchor = new GPoint(22, 30);
	pointIcon.infoWindowAnchor = new GPoint(12, 30);
	pointIcon.infoShadowAnchor = new GPoint(26, 30);
	*/	
	pointIcon.iconSize = new GSize(24, 32);
	pointIcon.shadowSize = new GSize(42, 32);
	pointIcon.iconAnchor = new GPoint(12, 32);
	pointIcon.infoWindowAnchor = new GPoint(12, 10);
	pointIcon.infoShadowAnchor = new GPoint(21, 32);

	//수정하는 데이터의 marker를 위해
	pointIconModify = new GIcon();
	pointIconModify.image = _JOARA_URL_MAP +"/img/mapimg/point_01_modify.png";
	pointIconModify.shadow = _JOARA_URL_MAP +"/img/mapimg/point_02_shadow.png";
	pointIconModify.iconSize = new GSize(28, 42);
	pointIconModify.shadowSize = new GSize(42, 32);
	pointIconModify.iconAnchor = new GPoint(14, 42);
	pointIconModify.infoWindowAnchor = new GPoint(14, 10);
	pointIconModify.infoShadowAnchor = new GPoint(21, 32);
	if (GBrowserIsCompatible()) {
		//map 전역변수에 객체 할당
		map = new GMap2($("map"));
		/********************************************************/
		/********************************************************/
		//map 중심잡기
		//해당 좌표에 marker 표시
		var point = new GLatLng(Lat, Lng);
		map.setCenter(point, parseInt(Zoom));
		//map 에 전역변수 markerModify표시 
		markerModify = new GMarker(point, pointIcon);
		map.addOverlay(markerModify);
		/********************************************************/
		/********************************************************/
		//map에 각종 기능 추가
		map.addControl(new GLargeMapControl());					//왼편에 큰 줌레벨
		map.addControl(new GMapTypeControl());					//오른편 상단의 지도종류버튼		
		miniMap = new GOverviewMapControl(new GSize(120,80));	//오른편 하단의 미니맵
		map.addControl(miniMap); 								//오른편 하단의 미니맵 디폴트:가로120
		//map의 최초로딩 mapType 지정
		map.setMapType(G_HYBRID_MAP);	
		//마우스 Events에 따른 Zoom기능 설정
		map.enableContinuousZoom();		//자연스러운 줌기능
		map.enableDoubleClickZoom();	//더블클릭시에 줌기능
		//해당영역의 룸레벨
		getMapLoadWriteFormZoomLevel();	
		/*
		var getNowZoomLevel = getMapLoadWriteFormZoomLevel();		
		$("map_zoom").value = getNowZoomLevel;
		*/
		//개발용 각종 메세지 출력 함수
		printDev();
				
		//마우스 Events 처리직후 처리되는 부분
		GEvent.addListener(map, "moveend", function() {
			//개발용 각종 메세지 출력 함수
			printDev();

			//현재 보이는 map 영역의좌표값들 받아오기
			var nowSouthWestLat = getSouthWestLat();
			var nowSouthWestLng = getSouthWestLng();
			var nowNorthEastLat = getNorthEastLat();
			var nowNorthEastLng = getNorthEastLng();

			//Ajax처리를 위해 보내기 - 이벤트 발생시 - 해당영역의 마커를 로드한다
			doMapPointSubmit(nowSouthWestLat, nowSouthWestLng, nowNorthEastLat, nowNorthEastLng);

		});		

		//마우스 click 할때 처리되는 부분
		GEvent.addListener(map, "click", function(marker, point) {
			if(marker){
				clearOverlays();	
				//map.removeOverlay(marker);
				map.addOverlay(markerModify);
				$("map_lat").value = Lat;
				$("map_lng").value = Lng;
				//포인트 갯수 초기화
				mapModifyPoint = 0;
			}else{
				//포인트가 0개면 marker를 생성한다
				if(mapModifyPoint==0){
					mapModifyPoint = 1;
					map.addOverlay(new GMarker(point, pointIconModify));
					$("map_lat").value = point.lat();
					$("map_lng").value = point.lng();
				}else{
					//포인트가 존재하면 다 지우고
					clearOverlays();	
					//db값의 포인트를 표시하고
					map.addOverlay(markerModify);
					//수정할 새로운 포인트를 추가한다
					map.addOverlay(new GMarker(point, pointIconModify));
					//폼의 값을 변경한다
					$("map_lat").value = point.lat();
					$("map_lng").value = point.lng();
					//포인트 갯수는 1
					mapModifyPoint = 1;
				}
			}
		});
	
		GEvent.addListener(map, "zoomend", function() {
			//map 초기화
			clearOverlays();	
			//디비값의 포인트를 표시하고
			map.addOverlay(markerModify);
			//디비값으로 변경
			$("map_lat").value = Lat;
			$("map_lng").value = Lng;
			//해당영역의 룸레벨
			getMapLoadWriteFormZoomLevel();	
			/*
			var getNowZoomLevel = getMapLoadWriteFormZoomLevel();		
			$("map_zoom").value = getNowZoomLevel;
			*/
			//포인트 갯수 초기화
			mapModifyPoint = 0;
		});	

		//각종 Events 통합처리되는 부분
		addListener("zoom");	//이벤트가 zoom 일때

	}

}
/*************************************************************************************************************/
/*************************************************************************************************************/




/*************************************************************************************************************/
/**각 기능을 가진 메소드들************************************************************************************/
//변수의 길이가 존재하는지를 체크
function checkValueExist(value){
	try{
		var valueLength = value.length;
		if(valueLength>0){
			return true;
		}else{
			return false;
		}
	}catch(e){
		return false;
	}
}
//변수의 길이를 리턴
function checkValueLength(value){
	try{
		var valueLength = value.length;
		return valueLength;
	}catch(e){
		return false;
	}
}
/*************************************************************************************************************/
/*************************************************************************************************************/
//중심좌표잡기와 풍선글 달기
function mapSetCenter(getLat, getLng, getLocalName){
	try{	
		/********************************************************/
		/********************************************************/
		//map 중심잡기
		//해당 좌표에 marker 표시
		map.setCenter(new GLatLng(parseFloat(getLat), parseFloat(getLng)));	
		//map 에 전역변수 markerModify표시 
		var viewMarker = new GMarker(new GLatLng(parseFloat(getLat), parseFloat(getLng)), pointIcon);
		map.addOverlay(viewMarker);		
			strHTMLView  = "<table border=0 cellspacing=0 cellpadding=0>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle width=30%>";
						strHTMLView += getLocalName;
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
			strHTMLView += "</table>";
		viewMarker.openInfoWindowHtml(strHTMLView);
		/********************************************************/
		/********************************************************/
	}catch(e){
			alert("Error 2100: "+e);
	}
}
//중심좌표잡기와 풍선글 달기
function mapSetCenterZoom(getLat, getLng, getZoom, getLocalName){
	try{	
		/********************************************************/
		/********************************************************/
		//map 중심잡기
		//해당 좌표에 marker 표시
		map.setCenter(new GLatLng(parseFloat(getLat), parseFloat(getLng)), parseInt(getZoom));	
		//map 에 전역변수 markerModify표시 
		var viewMarker = new GMarker(new GLatLng(parseFloat(getLat), parseFloat(getLng)), pointIcon);
		map.addOverlay(viewMarker);		
			strHTMLView  = "<table border=0 cellspacing=0 cellpadding=0>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle width=30%>";
						strHTMLView += getLocalName;
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
				strHTMLView += "<tr>";
					strHTMLView += "<td align=center valign=middle height='10'>";
					strHTMLView += "</td>";
				strHTMLView += "</tr>";
			strHTMLView += "</table>";
		viewMarker.openInfoWindowHtml(strHTMLView);
		/********************************************************/
		/********************************************************/
	}catch(e){
			alert("Error 2100: "+e);
	}
}


function writeFormReset(){
	//map 초기화
	map.clearOverlays();		
	//입력된 좌표값 초기화
	$("map_lat").value = "";
	$("map_lng").value = "";	
	//포인트 초기화				
	if(mapWritePoint==1){
		mapWritePoint = 0;
	}
}

//미니맵 숨기기
function overviewMapControlHide(){
	miniMap.hide();
}
//미니맵 보이기
function overviewMapControlShow(){
	miniMap.show();
}

function printDev(){
	//map의 SouthWest-NorthEast(남서-북동) 좌표출력
	getSouthWest_NorthEast();
	//map의 zoomLevel 출력
	getBoundsZoomLevel();
	//map의 Center값 출력
	getCenter();
}

//XML파일 읽어 들이기
function loadXML(){
	GDownloadUrl("map_data.xml", function(data, responseCode){
	  var xml = GXml.parse(data);
	  var markers = xml.documentElement.getElementsByTagName("marker");
	  for (var i = 0; i < markers.length; i++) {
		//입력된 데이터 좌표
		var dataLat = parseFloat(markers[i].getAttribute("lat"));
		var dataLng = parseFloat(markers[i].getAttribute("lng"));
		
		//전역변수를 받아 현재 영역과 비교 계산하여 출력
		if(southWestLat<dataLat && southWestLng<dataLng && northEastLat>dataLat && northEastLng>dataLng){
			var point = new GLatLng(dataLat,dataLng);
		//	alert("Tick!");
			map.addOverlay(new GMarker(point, pointIcon));
		}			
	  }
	});
}

//Events 처리 (addListenerStart - addListenerEnd 한세트로 처리됨)
function addListener(type){
	addListenerStart(type+"start");
	addListenerEnd(type+"end");
}
//Events 시작 처리
function addListenerStart(type){
	GEvent.addListener(map, type, function() {

		//동해 표기
		map.removeOverlay(tempMarker);

		$("map_msg_layer").style.display = "";
		$("map_msg_layer").innerHTML = "<img src='"+ _JOARA_URL_MAP +"/img/mapimg/img_loding.gif' align='absmiddle'> Loading";
	});
}
//Events 종료 처리
function addListenerEnd(type){
	GEvent.addListener(map, type, function() {

		//동해 표기
		map.removeOverlay(tempMarker);
		addTempMarker();

		$("map_msg_layer").style.display = "none";
		$("map_msg_layer").innerHTML = "";
	});
}

//임의의 마커를 생성
var tempMarker;
var tempPoint;
function addTempMarker(){	
	tempIcon = new GIcon();
	tempIcon.image = _JOARA_URL_MAP +"/img/mapimg/joara_markers/marker_eastsea.png";
	tempIcon.shadow = "";
	/*
	pointIcon.iconSize = new GSize(28, 32);
	pointIcon.shadowSize = new GSize(42, 32);
	pointIcon.iconAnchor = new GPoint(14, 32);
	pointIcon.infoWindowAnchor = new GPoint(14, 10);
	pointIcon.infoShadowAnchor = new GPoint(21, 32);
	*/
	tempIcon.iconSize = new GSize(95, 52);
	tempIcon.shadowSize = new GSize(42, 32);
	tempIcon.iconAnchor = new GPoint(12, 32);
	tempIcon.infoWindowAnchor = new GPoint(12, 10);
	tempIcon.infoShadowAnchor = new GPoint(21, 32);

	//동해 표기
	tempPoint = new GLatLng('38.54816542304656', '132.34130859375');
	tempMarker = new GMarker(tempPoint, tempIcon);

	//임의 marker 표기
	if(parseInt(map.getZoom())>4){
		map.addOverlay(tempMarker);
	}
}
//임의의 마커를 제거
function removeTempMarker(getTempMarker){
	map.addOverlay(getTempMarker);
	map.removeOverlay(getTempMarker);
}

//map_msg 지우기
function clearMapMsg(){
	$("map_msg").innerHTML = "";
}

//map에 Overlay된것들 지우기
function clearOverlays(){
	map.clearOverlays();
}

//map의 현재 zoomLevel 구하기
function getBoundsZoomLevel(){
	try{
		var bounds	 = map.getBounds();
		var zoomLevel= map.getBoundsZoomLevel(bounds);
	//	$("map_msg").innerHTML += ", zoomLevel:"+ zoomLevel;
	}catch(e){
	//	$("map_msg").innerHTML += " Fail to load: zoomLevel ";
	}
}

//mpa의 현재영역 Center좌표 구하기
function getCenter(){
	try{
		var mapCenter	= map.getCenter();
	//	$("map_msg").innerHTML += ", mapCenter:"+ mapCenter;
	}catch(e){
	//	$("map_msg").innerHTML += " Fail to load: mapCenter ";
	}
}

//패널 토글처리 부분
var paneltoggleStatus = false;
function mapSubtoggle(){
	//width:765px
	//height:600px
	try{
		if(paneltoggleStatus==false){
			paneltoggleStatus = true;
			overviewMapControlHide();
			$("map").style.width = "565px";
			$("map_sub_toggle").src = "../img/mapimg/hide_arrow.png";
			$("map_guide_book").style.display = "";
		}else{
			paneltoggleStatus = false;
			overviewMapControlShow();
			$("map").style.width = "765px";
			$("map_sub_toggle").src = "../img/mapimg/show_arrow.png";
			$("map_guide_book").style.display = "none";
		}
	}catch(e){
		alert("Error 0010 : "+ e);
	}
}
