/*
   '************************************************************************************************************
   '	Program ID	: Ajax_MapEngine_new_test.js
   '	Program Name	: 지오피스 Ajax GMap 
   '	Program Desc	: 지오피스 Ajax GMap - 지적지도&항공사진 API  
   '	Developer 	: 이종후 
   '	Create Date	: 2007.12.09
   '	Update Date	: 2008.05.27
   '************************************************************************************************************
*/

var GMap2 = function(outer_div, inner_div) {
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//멤버 변수
	var MakerArray    = new Array();    //생성해야 할 마커를 담는 배열
	var MgrsArray     = new Array();    //거리좌표 정보를 담는 배열
	var MgrsArray2    = new Array();    //면적좌표 정보를 담는 배열

	var MgrsArray3    = new Array();    //면적좌표 정보를 담는 배열
	var MgrsArray4    = new Array();    //면적좌표 정보를 담는 배열
	var MgrsArray5    = new Array();    //면적좌표 정보를 담는 배열

	var Mgrscounter  = 0;          //거리좌표배열 카운터
	var Mgrscounter2 = 0;          //면적좌표배열 카운터
	var Mgrscounter3 = 0;          //면적좌표배열 카운터
	var Mgrscounter4 = 0;          //면적좌표배열 카운터
	var Mgrscounter5 = 0;          //면적좌표배열 카운터
	
	var DistanceArray = new Array();    //거리&면적 정보 배열  
	var Groupidx    = 0;           //거리모드 그룹변수 
	var Groupidx2   = 2;           //면적모드 그룹변수 

	var GMapidx     = 0;           //거리&면적모드일경우 드래그 구분 
	var Mgrsindex   = 0;           //거리&면적 배열 index
	var indexcouter = 0;           //거리&면적 배열 index카운트 0부터 시작
	var distance;                  //한단계전 거리
	var alldistance = 0;           //총거리

	var counter = 0;               //마커배열 카운터
	var Distancecounter = 0;       //거리&면적 클릭지점배열 아이콘 이미지 

	var Eventcounter = 0;
	var clickcount   = 0;

	var visibleTilesMap = new Array();      //빈 맵을 생성 현재 보여지는 Tile 정보 배열
	var visibleTiles;

	var m_outer_div = outer_div;
	var m_inner_div = inner_div;

	var location_low;  //프핀트모듈에 넘길 area값
	var location_col; 

	var viewportWidth;
	var viewportHeight;
	var tileSize = 800;

	var area1;
	var area2;
	var no4_middle;
	var no4_After;
	var no10_middle;
	var no10_After;

	var areanum1;
	var areanum2;

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//정확한 좌표 계산을 위한 멤버변수 추가 ★★★

	var g_loc_areanum1;
	var g_loc_areanum2;
	var g_loc4_middle;
	var g_loc4_after;
	var g_loc10_middle;
	var g_loc10_after;

	//정확한 좌표 계산을 위한 멤버변수 추가 ★★★
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //마커 계산용 변수 

	var	m_loc_areanum1;
	var m_loc_areanum2;
	var m_loc4_middle;
	var m_loc4_after;
	var m_loc10_middle;
	var m_loc10_after;

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////

	var i;
	var j;
	var k;
	var m;

//	var strRow = new Array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"); //mgrs row 문자

//	var strCol = new Array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V");                 //mgrs col 문자
	var strRow = new Array("a","b","c","d","e","f","g","h","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z"); 
	//mgrs row 문자

	var strCol = new Array("a","b","c","d","e","f","g","h","j","k","l","m","n","p","q","r","s","t","u","v");    //mgrs col 문자
	
					
	var dragging = false;
	var top;
	var left;
	var dragStartTop;
	var dragStartLeft;

	//GWS84 ellipse GWS 타원체
    //var phi;
    //var lam;  //latitude, radians 위도-  각도단위 , longitude, radians 경도- 각도 단위

	var a  = 6378137;             //semi-major axis of ellipsoid, meters
	var f1 = 1 / 298.257223563;   //flattening of ellipsoid

	//UTM 변환 상수
	var x0  = 0;       //원점의 좌표값
	var y00 = 500000;  
	var ok  = 0.9996;  //원점의 축척계수

	var phi0 = 0;      //원점의 위도, 경도 초기화
	var lam0 = 0;
	
	var strMGRS;

	var xn;
	var ye;

	//멤버 변수
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//메소드

	

	//화면모드초기화함수
	this.init = function() {


		//드래그를 수행하기 위해 마우스 리스너들을 묶는다.
		var outerDiv = document.getElementById(m_outer_div);
		if (GMapMode == "Move"){
				if (outerDiv.attachEvent){
					outerDiv.attachEvent("onmousemove",processmove);    //outerDiv안에서 마우스가 움직일때
					outerDiv.attachEvent("onmousewheel",startwheel);    //outerDiv안에서 마우스 휠버튼 눌렀을 때
				}else if(outerDiv.addEventListener){
					outerDiv.addEventListener("mousemove",processmove,false);    
					//outerDiv안에서 마우스가 움직일때
					outerDiv.addEventListener("mousewheel",startwheel,false);    
					//outerDiv안에서 마우스 휠버튼 눌렀을 때
					outerDiv.addEventListener("mousedown",startmove,false);    //마우스를 누른 순간
					outerDiv.addEventListener("mouseup",stopmove,false);       //누른 마우스 버튼을  놓을 때
					outerDiv.addEventListener("click",getClickLocation,false); //객체가 클릭될 때
					outerDiv.addEventListener("mouseleave",stopmove,false);
				}	
		}else if (GMapMode == "line" || GMapMode == "area"){	
			if (indexcouter == 0){					
			    outerDiv.attachEvent("oncontextmenu",EndDrawMode);
			}								
		}
		return;
	}
	
	//tooltip삭제함수
	this.RemoveTooltip = function() {

		var innerDiv2 = document.getElementById(m_inner_div);
		var divs     = innerDiv2.getElementsByTagName("div");
		for (i = 0; i < divs.length; i++) {
			var id   = divs[i].getAttribute("id");			
				if (id == "tooltip"){
					this.purge(divs[i]);
					innerDiv2.removeChild(divs[i]);
					i--;  // compensate for live nodelist
				}	
		}
	}

	//DrawMode초기화함수
	this.RemoveDMaker = function() {

		MgrsArray      = new Array(); //거리좌표 배열 초기화
		MgrsArray2     = new Array(); //면적좌표 배열 초기화
		MgrsArray3     = new Array(); //면적좌표 배열 초기화
		MgrsArray4     = new Array(); //면적좌표 배열 초기화
		MgrsArray5     = new Array(); //면적좌표 배열 초기화

		DistanceArray  = new Array(); //거리&면적 정보배열 초기화

		Distancecounter  = 0;
		Mgrscounter      = 0;
		Mgrscounter2     = 0;
		Mgrscounter3     = 0;
		Mgrscounter4     = 0;
		Mgrscounter5     = 0;


		var innerDiv2 = document.getElementById(m_inner_div);
		var outerDiv = document.getElementById(m_outer_div);

		distance_view.style.visibility = "hidden";
				
		var divs     = innerDiv2.getElementsByTagName("div");
		var imgs     = innerDiv2.getElementsByTagName("img");

		for (i = 0; i < divs.length; i++) {
			var name   = divs[i].getAttribute("name");			
				if (name == "icon" || name == "iconline" || name == "iconarea"){
					this.purge(divs[i]);
					innerDiv2.removeChild(divs[i]);
					i--;  // compensate for live nodelist
				}
		}

		for (i = 0; i < imgs.length; i++) {
			var name = imgs[i].getAttribute("name");			
				if (name == "icon"){
					this.purge(imgs[i]);
					innerDiv2.removeChild(imgs[i]);
					i--;  // compensate for live nodelist
				}	
		}

		Groupidx  = 0;
		Groupidx2 = 2;

		//indexcouter = 0;

		return true;
	}

	//휠시 면적 다시 그리기 
	this.ReDraw2 = function(){

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var innerDiv2 = document.getElementById(m_inner_div);

		var Last2  = DistanceArray.length-1;

		var m_icon   = "icon";
		var m_width  = 130;
		var m_height = 66;

		//왼쪽 상단의 MGRS좌표를 구함
		var lefttop_loc10 = this.getLeftTopLocationMGRS4();

		var lefttop_area1       = lefttop_loc10.substr(0,1);
		var lefttop_area2       = lefttop_loc10.substr(1,1);
		var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
		var lefttop_no4_after   = lefttop_loc10.substring(7,9);
		var lefttop_no10_middle = lefttop_loc10.substring(4,7);
		var lefttop_no10_after  = lefttop_loc10.substring(9,12);

		lefttop_no4_middle  = Number(lefttop_no4_middle);
		lefttop_no4_after   = Number(lefttop_no4_after);
		lefttop_no10_middle = Number(lefttop_no10_middle);
		lefttop_no10_after  = Number(lefttop_no10_after);

		//현재 그려져있는 선정보 삭제
		for (j = 0; j <= Last2; j++) { 

			var Makerinfo = DistanceArray[j];  //2차원 배열값을 변수에 저장 
			
			if (Makerinfo[4] == 5){				
				Makerinfo[0]  = null;	
				Makerinfo[1]  = null;
				Makerinfo[2]  = null;
				Makerinfo[3]  = null;
				Makerinfo[4]  = null;
				Makerinfo[5]  = null;
				Makerinfo[6]  = null;
				Makerinfo[7]  = null;
				Makerinfo[8]  = null;
				Makerinfo[9]  = null;
				Makerinfo[10] = null;
				Makerinfo[11] = null;
			}
			
		}

		//현재 그려져있는 area Div삭제 
		var divs = innerDiv2.getElementsByTagName("div");

		for (k = 0; k < divs.length; k++) {
			var name   = divs[k].getAttribute("name");			
				if (name == "iconarea"){
					this.purge(divs[k]);
					innerDiv2.removeChild(divs[k]);
					k--;  // compensate for live nodelist
				}
		}
	
		var kS='';
		var Arraystr;
		var Last;
		var last3 = Groupidx2-3;

		for(m=0; m <= last3; m++){

			k = m + 2;

			if (k == 2){
				Last = MgrsArray2.length-1;
			}else if (k == 3){
				Last = MgrsArray3.length-1;
			}else if (k == 4){
				Last = MgrsArray4.length-1;
			}else if (k == 5){
				Last = MgrsArray5.length-1;
			}

			for(i=0; i <= Last; i++){

					if (k == 2){
						var Mgrsinfo  = MgrsArray2[i];
					}else if (k == 3){
						var Mgrsinfo  = MgrsArray3[i];
					}else if (k == 4){
						var Mgrsinfo  = MgrsArray4[i];
					}else if (k == 5){
						var Mgrsinfo  = MgrsArray5[i];
					}

					var priorMgrs = Mgrsinfo[0];

					/////////////////////////////////////////////////////////////////////////////////////////
					//필요한 문자열 추출
					var Get_area1        = priorMgrs.substr(0,1);
					var Get_area2        = priorMgrs.substr(1,1);
					var Get_no4_middle   = priorMgrs.substr(2,2);
					var Get_no4_after    = priorMgrs.substring(7,9);
					var Get_no10_middle  = priorMgrs.substring(4,7);
					var Get_no10_after   = priorMgrs.substring(9,12);

					Get_no4_middle  = Number(Get_no4_middle);
					Get_no4_after   = Number(Get_no4_after);
					Get_no10_middle = Number(Get_no10_middle);
					Get_no10_after  = Number(Get_no10_after);		
					/////////////////////////////////////////////////////////////////////////////////////////
					//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌

					var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
					var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

					var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
					var marker_y_value = Get_no4_after*1000+Get_no10_after;

					//상대 거리를 구함
					var left_value = marker_x_value - lefttop_x_value;
					left_value     = Math.floor(left_value*(tileSize/1000));

					var top_value  = lefttop_y_value - marker_y_value;
					top_value      = Math.floor(top_value*(tileSize/1000));

					if(i==0){
						kS+="m "+left_value+","+top_value+" l ";
					}else{
						if(i==Last){
							kS+=left_value+","+top_value+"x e";
							var mgrs_str  = Mgrsinfo[0];

							/////////////////////////////////////////////////////////////////////////////////////////
							//현재 클릭지점 좌표 문자열 추출
							var Get_area1        = mgrs_str.substr(0,1);
							var Get_area2        = mgrs_str.substr(1,1);
							var Get_no4_middle   = mgrs_str.substr(2,2);
							var Get_no4_after    = mgrs_str.substring(7,9);
							var Get_no10_middle  = mgrs_str.substring(4,7);
							var Get_no10_after   = mgrs_str.substring(9,12);

							Get_no4_middle  = Number(Get_no4_middle);
							Get_no4_after   = Number(Get_no4_after);
							Get_no10_middle = Number(Get_no10_middle);
							Get_no10_after  = Number(Get_no10_after);	
							/////////////////////////////////////////////////////////////////////////////////////////

							//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
							var lefttop_x_value2 = lefttop_no4_middle*1000+lefttop_no10_middle;
							var lefttop_y_value2 = lefttop_no4_after*1000+lefttop_no10_after;

							var marker_x_value2 = Get_no4_middle*1000+Get_no10_middle;
							var marker_y_value2 = Get_no4_after*1000+Get_no10_after;

							//상대 거리를 구함
							var left_value2 = marker_x_value2 - lefttop_x_value2;
							left_value2     = Math.floor(left_value2*(tileSize/1000));

							var top_value2  = lefttop_y_value2 - marker_y_value2;
							top_value2      = Math.floor(top_value2*(tileSize/1000));
							
						}else{
							kS+=left_value+","+top_value+",";
						}
					}
				}

			var m_icon   = "icon";
			var m_width  = 130;
			var m_height = 66;

			//영역추가
			DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,5,null,null,null,null,null,left_value2,top_value2,kS];
					
			Distancecounter++;
		}
		return true;
	}

	//휠시 거리 다시 그리기 
	this.ReDraw = function(){

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var innerDiv2 = document.getElementById(m_inner_div);

		var First = 0;
		var Last   = MgrsArray.length-1;
		var Last2  = DistanceArray.length-1;

		var m_icon   = "icon";
		var m_width  = 130;
		var m_height = 66;

		//왼쪽 상단의 MGRS좌표를 구함
		var lefttop_loc10 = this.getLeftTopLocationMGRS4();

		var lefttop_area1       = lefttop_loc10.substr(0,1);
		var lefttop_area2       = lefttop_loc10.substr(1,1);
		var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
		var lefttop_no4_after   = lefttop_loc10.substring(7,9);
		var lefttop_no10_middle = lefttop_loc10.substring(4,7);
		var lefttop_no10_after  = lefttop_loc10.substring(9,12);

		lefttop_no4_middle  = Number(lefttop_no4_middle);
		lefttop_no4_after   = Number(lefttop_no4_after);
		lefttop_no10_middle = Number(lefttop_no10_middle);
		lefttop_no10_after  = Number(lefttop_no10_after);

		//현재 그려져있는 선정보 삭제
		for (j = 0; j <= Last2; j++) { 

			var Makerinfo = DistanceArray[j];  //2차원 배열값을 변수에 저장 
			
			if (Makerinfo[4] == 4){				
				Makerinfo[0]  = null;	
				Makerinfo[1]  = null;
				Makerinfo[2]  = null;
				Makerinfo[3]  = null;
				Makerinfo[4]  = null;
				Makerinfo[5]  = null;
				Makerinfo[6]  = null;
				Makerinfo[7]  = null;
				Makerinfo[8]  = null;
				Makerinfo[9]  = null;
				Makerinfo[10] = null;
				Makerinfo[11] = null;
			}
			
		}

		//현재 그려져있는 line Div삭제 
		var divs = innerDiv2.getElementsByTagName("div");

		for (k = 0; k < divs.length; k++) {
			var name   = divs[k].getAttribute("name");			
				if (name == "iconline"){
					this.purge(divs[k]);
					innerDiv2.removeChild(divs[k]);
					k--;  // compensate for live nodelist
				}
		}
		
		//좌표배열순서대로 선다시 그리기 
		for(i=First; i <= Last; i++){

			var Mgrsinfo   = MgrsArray[i]; //현재거리
			var nowMgrs    = Mgrsinfo[0];  //현재클릭지점 Mgrs
			var nowX       = Mgrsinfo[1];  //현재클릭지점 화면좌표 
			var nowY	   = Mgrsinfo[2];
			var Gurop_type = Mgrsinfo[3];

			if (i != 0 ){

				var Mgrsinfo2   = MgrsArray[i-1]; //현재거리
				var Gurop_type2 = Mgrsinfo2[3];  //현재클릭지점 Mgrs

				if (Gurop_type == Gurop_type2){
				
					/////////////////////////////////////////////////////////////////////////////////////////
					//현재 클릭지점 좌표 문자열 추출
					var Get_area1        = nowMgrs.substr(0,1);
					var Get_area2        = nowMgrs.substr(1,1);
					var Get_no4_middle   = nowMgrs.substr(2,2);
					var Get_no4_after    = nowMgrs.substring(7,9);
					var Get_no10_middle  = nowMgrs.substring(4,7);
					var Get_no10_after   = nowMgrs.substring(9,12);

					Get_no4_middle  = Number(Get_no4_middle);
					Get_no4_after   = Number(Get_no4_after);
					Get_no10_middle = Number(Get_no10_middle);
					Get_no10_after  = Number(Get_no10_after);	
					/////////////////////////////////////////////////////////////////////////////////////////

					//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
					var lefttop_x_value2 = lefttop_no4_middle*1000+lefttop_no10_middle;
					var lefttop_y_value2 = lefttop_no4_after*1000+lefttop_no10_after;

					var marker_x_value2 = Get_no4_middle*1000+Get_no10_middle;
					var marker_y_value2 = Get_no4_after*1000+Get_no10_after;

					//상대 거리를 구함
					var left_value2 = marker_x_value2 - lefttop_x_value2;
					left_value2     = Math.floor(left_value2*(tileSize/1000));

					var top_value2  = lefttop_y_value2 - marker_y_value2;
					top_value2      = Math.floor(top_value2*(tileSize/1000));

					var Mgrsinfo2 = MgrsArray[i-1]; //한단계전거리
					var priorMgrs = Mgrsinfo2[0];
					var priorX    = Mgrsinfo2[1];
					var priorY	  = Mgrsinfo2[2];

					/////////////////////////////////////////////////////////////////////////////////////////
					//한단계전 클릭지점 좌표 문자열 추출
					var Get_area1        = priorMgrs.substr(0,1);
					var Get_area2        = priorMgrs.substr(1,1);
					var Get_no4_middle   = priorMgrs.substr(2,2);
					var Get_no4_after    = priorMgrs.substring(7,9);
					var Get_no10_middle  = priorMgrs.substring(4,7);
					var Get_no10_after   = priorMgrs.substring(9,12);

					Get_no4_middle  = Number(Get_no4_middle);
					Get_no4_after   = Number(Get_no4_after);
					Get_no10_middle = Number(Get_no10_middle);
					Get_no10_after  = Number(Get_no10_after);	
					/////////////////////////////////////////////////////////////////////////////////////////

					//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
					var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
					var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

					var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
					var marker_y_value = Get_no4_after*1000+Get_no10_after;

					//상대 거리를 구함
					var left_value = marker_x_value - lefttop_x_value;
					left_value     = Math.floor(left_value*(tileSize/1000));

					var top_value  = lefttop_y_value - marker_y_value;
					top_value      = Math.floor(top_value*(tileSize/1000));

					//선추가
					DistanceArray[Distancecounter] = [nowMgrs, m_icon ,m_width, m_height,4,null,null,null,left_value,top_value,left_value2,top_value2];
			
					Distancecounter++;
				}

			}
		}

		return true;
	}

	//최종거리&최종면적 구하기함수
	this.EndDrawMode = function(DrawMode){

		var walking,bicycles;
		distance_view.style.visibility = "hidden";
		
		if (DrawMode == "line"){

			var lastArray = MgrsArray.length-1; //총배열수

			if (lastArray >= 1){
		
				var Mgrsinfo = MgrsArray[MgrsArray.length-1]; //마지막거리
	
					var nowX    = Mgrsinfo[1];
					var nowY	= Mgrsinfo[2];
					var kt = alldistance/4;
					if (kt < 1){
						kt *= 60;
						kt = Math.round(kt)
						walking = kt + "분";
					}else{		
						kt = String(kt)
						var walkingValue = kt.split(".");
						var walkingmin = "0." +walkingValue[1];
						walkingmin *= 60; 
						walkingmin = Math.round(walkingmin)
						walking = walkingValue[0] + "시간" + walkingmin + "분";
					}

					var bK = alldistance/15;
					if (bK < 1){
						bK *= 60;
						bK = Math.round(bK)
						bicycles = bK + "분";
					}else{		
						bK = String(bK)
						var bicyclesValue = bK.split(".");
						var bicyclesmin = "0." +bicyclesValue[1];
						bicyclesmin *= 60; 
						bicyclesmin = Math.round(bicyclesmin)
						bicycles = bicyclesValue[0] + "시간" + bicyclesmin + "분";
					}


					var mgrs_str = Mgrsinfo[0];
					var m_icon   = "icon";
					var m_width  = 130;
					var m_height = 66;
					var distance = 0;

					//클릭지점 Loc10, 아이콘이미지,이미지 넓이,높이 마커추가(거리최종값)
					DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,3,distance,walking,bicycles];
					
					Distancecounter++;

					this.checkdistance();

					Mgrsindex++;
					Groupidx++;
					

					//MgrsArray   = new Array(); //거리배열 초기화
					//Mgrscounter = 0;           //거리배열카운터 초기화

					alldistance = 0;   //총거리 초기화
					indexcouter = 0;
	
			  }else if (lastArray == 0){

				alert("거리재기는 두점 이상 클릭해야 합니다.");
				return;
			  }
		  		
		}else if(DrawMode == "area"){

			if (Groupidx2 == 2){
				 var lastArray = MgrsArray2.length-1; //총배열수
			}else if (Groupidx2 == 3){
				 var lastArray = MgrsArray3.length-1; //총배열수
			}else if (Groupidx2 == 4){
				 var lastArray = MgrsArray4.length-1; //총배열수
			}else if (Groupidx2 == 5){
				 var lastArray = MgrsArray5.length-1; //총배열수
			}

			  if (lastArray >= 2){

					this.addarea(); //면적추가

					var z     = 0;
					var First = 0;
					var Last  = lastArray;

					//왼쪽 상단의 MGRS좌표를 구함
					var lefttop_loc10 = this.getLeftTopLocationMGRS4();

					var lefttop_area1       = lefttop_loc10.substr(0,1);
					var lefttop_area2       = lefttop_loc10.substr(1,1);
					var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
					var lefttop_no4_after   = lefttop_loc10.substring(7,9);
					var lefttop_no10_middle = lefttop_loc10.substring(4,7);
					var lefttop_no10_after  = lefttop_loc10.substring(9,12);

					lefttop_no4_middle  = Number(lefttop_no4_middle);
					lefttop_no4_after   = Number(lefttop_no4_after);
					lefttop_no10_middle = Number(lefttop_no10_middle);
					lefttop_no10_after  = Number(lefttop_no10_after);
					
					if (Groupidx2 == 2){
						var Firstinfo  = MgrsArray2[First];   //면적배열 첫번째 화면좌표
						var priorMgrs  = Firstinfo[0];
						var FirstX     = Firstinfo[1];
						var FirstY	   = Firstinfo[2];

						var Lastinfo  = MgrsArray2[Last];     //면적배열 마지막 화면좌표
						var mgrs_str  = Lastinfo[0];
						var LastX     = Lastinfo[1];
						var LastY	  = Lastinfo[2];
					}else if (Groupidx2 == 3){
						var Firstinfo  = MgrsArray3[First];   //면적배열 첫번째 화면좌표
						var priorMgrs  = Firstinfo[0];
						var FirstX     = Firstinfo[1];
						var FirstY	   = Firstinfo[2];

						var Lastinfo  = MgrsArray3[Last];     //면적배열 마지막 화면좌표
						var mgrs_str  = Lastinfo[0];
						var LastX     = Lastinfo[1];
						var LastY	  = Lastinfo[2];
					}else if (Groupidx2 == 4){
						var Firstinfo  = MgrsArray4[First];   //면적배열 첫번째 화면좌표
						var priorMgrs  = Firstinfo[0];
						var FirstX     = Firstinfo[1];
						var FirstY	   = Firstinfo[2];

						var Lastinfo  = MgrsArray4[Last];     //면적배열 마지막 화면좌표
						var mgrs_str  = Lastinfo[0];
						var LastX     = Lastinfo[1];
						var LastY	  = Lastinfo[2];
					}else if (Groupidx2 == 5){
						var Firstinfo  = MgrsArray5[First];   //면적배열 첫번째 화면좌표
						var priorMgrs  = Firstinfo[0];
						var FirstX     = Firstinfo[1];
						var FirstY	   = Firstinfo[2];

						var Lastinfo  = MgrsArray5[Last];     //면적배열 마지막 화면좌표
						var mgrs_str  = Lastinfo[0];
						var LastX     = Lastinfo[1];
						var LastY	  = Lastinfo[2];
					}

					this.checkdistance();

					for(i=First; i <= Last; i++){

						if (Groupidx2 == 2){
							var Mgrsinfo = MgrsArray2[i];
							var nowX     = Mgrsinfo[1];
							var nowY	 = Mgrsinfo[2];

							if (i < Last){
								var Nextinfo = MgrsArray2[i+1]; //해당순번 다음 화면좌표
								var NextX    = Nextinfo[1];
								var NextY	 = Nextinfo[2];	
							}
						
							if(i > 0){
								var preinfo  = MgrsArray2[i-1]; //해당순번 전 화면좌표 
								var preX     = preinfo[1];
								var preY	 = preinfo[2];
							}
						}else if (Groupidx2 == 3){
							var Mgrsinfo = MgrsArray3[i];
							var nowX     = Mgrsinfo[1];
							var nowY	 = Mgrsinfo[2];

							if (i < Last){
								var Nextinfo = MgrsArray3[i+1]; //해당순번 다음 화면좌표
								var NextX    = Nextinfo[1];
								var NextY	 = Nextinfo[2];	
							}
						
							if(i > 0){
								var preinfo  = MgrsArray3[i-1]; //해당순번 전 화면좌표 
								var preX     = preinfo[1];
								var preY	 = preinfo[2];
							}
						}else if (Groupidx2 == 4){
							var Mgrsinfo = MgrsArray4[i];
							var nowX     = Mgrsinfo[1];
							var nowY	 = Mgrsinfo[2];

							if (i < Last){
								var Nextinfo = MgrsArray4[i+1]; //해당순번 다음 화면좌표
								var NextX    = Nextinfo[1];
								var NextY	 = Nextinfo[2];	
							}
						
							if(i > 0){
								var preinfo  = MgrsArray4[i-1]; //해당순번 전 화면좌표 
								var preX     = preinfo[1];
								var preY	 = preinfo[2];
							}
						}else if (Groupidx2 == 5){
							var Mgrsinfo = MgrsArray5[i];
							var nowX     = Mgrsinfo[1];
							var nowY	 = Mgrsinfo[2];

							if (i < Last){
								var Nextinfo = MgrsArray5[i+1]; //해당순번 다음 화면좌표
								var NextX    = Nextinfo[1];
								var NextY	 = Nextinfo[2];	
							}
						
							if(i > 0){
								var preinfo  = MgrsArray5[i-1]; //해당순번 전 화면좌표 
								var preX     = preinfo[1];
								var preY	 = preinfo[2];
							}
						}
						
						if(i == Last){
							z += nowX * FirstY;
						}else{
							z += nowX * NextY;
						}

						if(i == First){
							z -= nowX * LastY;
						}else{
							z -= nowX * preY;	
						}
					}

					if(z < 0){
						z*=(-1);
					}
					z*=0.5;

					var meter  = 0;
					var result = 0;

					meter = 1000 / tileSize;
					meter  = meter * meter;
					result = z * meter;

					qk = "㎡";
					result = result.toFixed(2);

					if(result > 1000000){
						result = result/1000000;
						result   = result.toFixed(2);
						qk = "㎢"
					}

					result = result + qk;

					var m_icon   = "icon";
					var m_width  = 100;
					var m_height = 46;

					//영역추가
					DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,6,null,null,null,null,null,LastX,LastY,null,result];

					Distancecounter++;

					this.checkdistance();

					Mgrsindex++;
					Groupidx2++;

					//MgrsArray   = new Array();//거리배열 초기화
					//Mgrscounter2 = 0;         //거리배열카운터 초기화

					alldistance = 0;            //총거리 초기화
					indexcouter = 0;

				}else if (lastArray == 1 || lastArray == 0){

					alert("면적재기는 세점 이상 클릭해야 합니다.");
					return false;
			}
		}

		var outerDiv = document.getElementById(m_outer_div);

		GMapMode = "Move";
		outerDiv.detachEvent("oncontextmenu",EndDrawMode);  //최종거리&면적모드 이벤트제거

		return true;
	
	}
	
	//영역추가
	this.addarea = function(){

		if(!document.namespaces.v){
			document.namespaces.add("v","urn:schemas-microsoft-com:vml"); //VML을 위한 Namespace 정의
			document.createStyleSheet().addRule("v\\:*","behavior: url(#default#VML);") //VML을 위한 behavior정의
		}

		var innerDiv2 = document.getElementById(m_inner_div);
		var First = 0;

		if (Groupidx2 == 2){
			 var Last = MgrsArray2.length-1; //총배열수
		}else if (Groupidx2 == 3){
			 var Last = MgrsArray3.length-1; //총배열수
		}else if (Groupidx2 == 4){
			 var Last = MgrsArray4.length-1; //총배열수
		}else if (Groupidx2 == 5){
			 var Last = MgrsArray5.length-1; //총배열수
		}

		var kS='';

		//왼쪽 상단의 MGRS좌표를 구함
		var lefttop_loc10 = this.getLeftTopLocationMGRS4();

		var lefttop_area1       = lefttop_loc10.substr(0,1);
		var lefttop_area2       = lefttop_loc10.substr(1,1);
		var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
		var lefttop_no4_after   = lefttop_loc10.substring(7,9);
		var lefttop_no10_middle = lefttop_loc10.substring(4,7);
		var lefttop_no10_after  = lefttop_loc10.substring(9,12);

		lefttop_no4_middle  = Number(lefttop_no4_middle);
		lefttop_no4_after   = Number(lefttop_no4_after);
		lefttop_no10_middle = Number(lefttop_no10_middle);
		lefttop_no10_after  = Number(lefttop_no10_after);

		for(i=First; i <= Last; i++){	

			if (Groupidx2 == 2){
				var Mgrsinfo   = MgrsArray2[i];
				var priorMgrs  = Mgrsinfo[0];
			}else if (Groupidx2 == 3){
				var Mgrsinfo   = MgrsArray3[i];
				var priorMgrs  = Mgrsinfo[0];
			}else if (Groupidx2 == 4){
				var Mgrsinfo   = MgrsArray4[i];
				var priorMgrs  = Mgrsinfo[0];
			}else if (Groupidx2 == 5){
				var Mgrsinfo   = MgrsArray5[i];
				var priorMgrs  = Mgrsinfo[0];
			}

			/////////////////////////////////////////////////////////////////////////////////////////
			//필요한 문자열 추출
			var Get_area1        = priorMgrs.substr(0,1);
			var Get_area2        = priorMgrs.substr(1,1);
			var Get_no4_middle   = priorMgrs.substr(2,2);
			var Get_no4_after    = priorMgrs.substring(7,9);
			var Get_no10_middle  = priorMgrs.substring(4,7);
			var Get_no10_after   = priorMgrs.substring(9,12);

			Get_no4_middle  = Number(Get_no4_middle);
			Get_no4_after   = Number(Get_no4_after);
			Get_no10_middle = Number(Get_no10_middle);
			Get_no10_after  = Number(Get_no10_after);		
			/////////////////////////////////////////////////////////////////////////////////////////
			//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌

			var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
			var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

			var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
			var marker_y_value = Get_no4_after*1000+Get_no10_after;

			//상대 거리를 구함
			var left_value = marker_x_value - lefttop_x_value;
			left_value     = Math.floor(left_value*(tileSize/1000));

			var top_value  = lefttop_y_value - marker_y_value;
			top_value      = Math.floor(top_value*(tileSize/1000));
			
			if(i==0){
				kS+="m "+left_value+","+top_value+" l ";
			}else{
				if(i==Last){
					kS+=left_value+","+top_value+"x e";
					var mgrs_str  = Mgrsinfo[0];
					/////////////////////////////////////////////////////////////////////////////////////////
					//현재 클릭지점 좌표 문자열 추출
					var Get_area1        = mgrs_str.substr(0,1);
					var Get_area2        = mgrs_str.substr(1,1);
					var Get_no4_middle   = mgrs_str.substr(2,2);
					var Get_no4_after    = mgrs_str.substring(7,9);
					var Get_no10_middle  = mgrs_str.substring(4,7);
					var Get_no10_after   = mgrs_str.substring(9,12);

					Get_no4_middle  = Number(Get_no4_middle);
					Get_no4_after   = Number(Get_no4_after);
					Get_no10_middle = Number(Get_no10_middle);
					Get_no10_after  = Number(Get_no10_after);	
					/////////////////////////////////////////////////////////////////////////////////////////

					//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
					var lefttop_x_value2 = lefttop_no4_middle*1000+lefttop_no10_middle;
					var lefttop_y_value2 = lefttop_no4_after*1000+lefttop_no10_after;

					var marker_x_value2 = Get_no4_middle*1000+Get_no10_middle;
					var marker_y_value2 = Get_no4_after*1000+Get_no10_after;

					//상대 거리를 구함
					var left_value2 = marker_x_value2 - lefttop_x_value2;
					left_value2     = Math.floor(left_value2*(tileSize/1000));

					var top_value2  = lefttop_y_value2 - marker_y_value2;
					top_value2      = Math.floor(top_value2*(tileSize/1000));

					//var LastX     = Mgrsinfo[1];
					//var LastY	  = Mgrsinfo[2];
					
				}else{
					kS+=left_value+","+top_value+",";
				}
			}
		}

		var m_icon   = "icon";
		var m_width  = 130;
		var m_height = 66;

		//영역추가
		DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,5,null,null,null,null,null,left_value2,top_value2,kS];
				
		Distancecounter++;

		this.checkdistance();

		/*var dialog = document.createElement("div"); 
		dialog.style.position = "absolute";
		dialog.style.zIndex   = 1;
		dialog.setAttribute("id", "pinDialog" + Mgrsindex); 	
		dialog.innerHTML = "<v:shape style='position:absolute; width:200; height:200' coordorigin='0 0' coordsize='200 200' stroke='true' strokecolor='#6B8EF0' strokeweight='0.5'><v:fill on='true' color='#6B8EF0'opacity='0.1'/><v:path v='"+kS+"'/></v:shape>";
		innerDiv2.appendChild(dialog);*/

		return true;
	}

	//라인추가
	this.addlines = function(innerDiv2,priorX,priorY,nowX,nowY){

		if(!document.namespaces.v){
			document.namespaces.add("v","urn:schemas-microsoft-com:vml"); //VML을 위한 Namespace 정의
			document.createStyleSheet().addRule("v\\:*","behavior: url(#default#VML);") //VML을 위한 behavior정의
		}

		var dialog = document.createElement("div");
		dialog.style.position = "absolute";
		dialog.style.zIndex   = 1;
		dialog.setAttribute("id", "pinDialog" + Mgrsindex);
		dialog.innerHTML = "<v:line id=lines style='position:absolute;' fillcolor ='#6B8EF0' from='"+priorX+"px,"+priorY+"px' to='"+nowX+"px,"+nowY+"px' strokeweight='2.2pt' strokecolor='#6B8EF0' strokeStyle ='single' />";
		innerDiv2.appendChild(dialog);

		return true;
	}


	//거리구하기함수
	this.addition = function(MgrsArray_num,DrawMode){

		if (DrawMode == "line"){	
			distance_view.style.visibility = "visible";
		}else if (DrawMode == "area"){

				distance_view.style.visibility = "visible";
				var Menulog = document.getElementById("distance_view");
	
				Menulog.innerHTML ="<table width='100' height='40' border='0' background='http://map.geopis.co.kr/map/geopis/NoImg/area_view.gif'><tr>&nbsp</tr></table>";

		}

		//한단계전까지의 거리
		if (indexcouter != 0){

			if (DrawMode == "line"){

				var Mgrsinfo = MgrsArray[MgrsArray_num]; //현재거리
				var nowMgrs = Mgrsinfo[0];
				var nowX    = Mgrsinfo[1];
				var nowY	= Mgrsinfo[2];

				var Mgrsinfo2 = MgrsArray[MgrsArray_num-1]; //한단계전거리
				var priorMgrs = Mgrsinfo2[0];
				var priorX    = Mgrsinfo2[1];
				var priorY	  = Mgrsinfo2[2];

				//alert(GMapMode);

				//왼쪽 상단의 MGRS좌표를 구함
				var lefttop_loc10 = this.getLeftTopLocationMGRS4();

				//alert(lefttop_loc10 + " " + priorMgrs);

				var lefttop_area1       = lefttop_loc10.substr(0,1);
				var lefttop_area2       = lefttop_loc10.substr(1,1);
				var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
				var lefttop_no4_after   = lefttop_loc10.substring(7,9);
				var lefttop_no10_middle = lefttop_loc10.substring(4,7);
				var lefttop_no10_after  = lefttop_loc10.substring(9,12);

				lefttop_no4_middle  = Number(lefttop_no4_middle);
				lefttop_no4_after   = Number(lefttop_no4_after);
				lefttop_no10_middle = Number(lefttop_no10_middle);
				lefttop_no10_after  = Number(lefttop_no10_after);

				/////////////////////////////////////////////////////////////////////////////////////////
				//필요한 문자열 추출
				var Get_area1        = priorMgrs.substr(0,1);
				var Get_area2        = priorMgrs.substr(1,1);
				var Get_no4_middle   = priorMgrs.substr(2,2);
				var Get_no4_after    = priorMgrs.substring(7,9);
				var Get_no10_middle  = priorMgrs.substring(4,7);
				var Get_no10_after   = priorMgrs.substring(9,12);

				Get_no4_middle  = Number(Get_no4_middle);
				Get_no4_after   = Number(Get_no4_after);
				Get_no10_middle = Number(Get_no10_middle);
				Get_no10_after  = Number(Get_no10_after);		
				/////////////////////////////////////////////////////////////////////////////////////////
				//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌

				var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
				var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

				var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
				var marker_y_value = Get_no4_after*1000+Get_no10_after;

				//상대 거리를 구함
				var left_value = marker_x_value - lefttop_x_value;
				left_value     = Math.floor(left_value*(tileSize/1000));

				var top_value  = lefttop_y_value - marker_y_value;
				top_value      = Math.floor(top_value*(tileSize/1000));

				//alert(left_value + " " + top_value);

				//this.addlines(innerDiv2,priorX,priorY,nowX,nowY);//라인추가
				var Mgrsinfo = MgrsArray[MgrsArray_num]; //현재거리

				var mgrs_str = Mgrsinfo[0];
				var m_icon   = "icon";
				var m_width  = 130;
				var m_height = 66;

				var additionX = nowX - left_value;
				var additionY = nowY - top_value;

				distance = Math.sqrt(Math.pow(additionX,2) + Math.pow(additionY,2)); //피타고라스의 정리에 의한 거리계산
				distance = distance/tileSize;   //타일사이즈에 맞게 거리 보정
				distance = distance.toFixed(2); //소수점 둘째자리까지 고정
				alldistance = Number(alldistance) + Number(distance); //총거리
				alldistance = alldistance.toFixed(2); //소수점 둘째자리까지 고정
				
				//선추가
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,4,distance,null,null,left_value,top_value,nowX,nowY];

				//DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,4,distance,null,null,priorX,priorY,nowX,nowY];
				
				Distancecounter++;

				this.checkdistance();

				 m_width  = 45;
				 m_height = 17;

				//거리중간값
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,2,distance];
				
				Distancecounter++;

				this.checkdistance();

				var Menulog = document.getElementById("distance_view");
	
				Menulog.innerHTML ="<table width='100' height='64' border='0' background='http://map.geopis.co.kr/map/geopis/NoImg/distance_view.gif'><tr>" +
				"<td align='center' width='100' height='20'><b>총거리</b>&nbsp;<font color='blue'>"+ alldistance +"km</font></td></tr><tr><td width='100' height='38'></td></tr></table>";

			}else if (DrawMode == "area"){

				if (Groupidx2 == 2){
					var Mgrsinfo = MgrsArray2[MgrsArray_num]; //현재거리
					var nowMgrs = Mgrsinfo[0];
					var nowX    = Mgrsinfo[1];
					var nowY	= Mgrsinfo[2];

					var Mgrsinfo2 = MgrsArray2[MgrsArray_num-1]; //한단계전거리
					var priorMgrs = Mgrsinfo2[0];
					var priorX    = Mgrsinfo2[1];
					var priorY	  = Mgrsinfo2[2];
				}else if (Groupidx2 == 3){
					var Mgrsinfo = MgrsArray3[MgrsArray_num]; //현재거리
					var nowMgrs = Mgrsinfo[0];
					var nowX    = Mgrsinfo[1];
					var nowY	= Mgrsinfo[2];

					var Mgrsinfo2 = MgrsArray3[MgrsArray_num-1]; //한단계전거리
					var priorMgrs = Mgrsinfo2[0];
					var priorX    = Mgrsinfo2[1];
					var priorY	  = Mgrsinfo2[2];
				}else if (Groupidx2 == 4){
					var Mgrsinfo = MgrsArray4[MgrsArray_num]; //현재거리
					var nowMgrs = Mgrsinfo[0];
					var nowX    = Mgrsinfo[1];
					var nowY	= Mgrsinfo[2];

					var Mgrsinfo2 = MgrsArray4[MgrsArray_num-1]; //한단계전거리
					var priorMgrs = Mgrsinfo2[0];
					var priorX    = Mgrsinfo2[1];
					var priorY	  = Mgrsinfo2[2];
				}else if (Groupidx2 == 5){
					var Mgrsinfo = MgrsArray5[MgrsArray_num]; //현재거리
					var nowMgrs = Mgrsinfo[0];
					var nowX    = Mgrsinfo[1];
					var nowY	= Mgrsinfo[2];

					var Mgrsinfo2 = MgrsArray5[MgrsArray_num-1]; //한단계전거리
					var priorMgrs = Mgrsinfo2[0];
					var priorX    = Mgrsinfo2[1];
					var priorY	  = Mgrsinfo2[2];
				}

				//왼쪽 상단의 MGRS좌표를 구함
				var lefttop_loc10 = this.getLeftTopLocationMGRS4();

				//alert(lefttop_loc10 + " " + priorMgrs);

				var lefttop_area1       = lefttop_loc10.substr(0,1);
				var lefttop_area2       = lefttop_loc10.substr(1,1);
				var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
				var lefttop_no4_after   = lefttop_loc10.substring(7,9);
				var lefttop_no10_middle = lefttop_loc10.substring(4,7);
				var lefttop_no10_after  = lefttop_loc10.substring(9,12);

				lefttop_no4_middle  = Number(lefttop_no4_middle);
				lefttop_no4_after   = Number(lefttop_no4_after);
				lefttop_no10_middle = Number(lefttop_no10_middle);
				lefttop_no10_after  = Number(lefttop_no10_after);

				/////////////////////////////////////////////////////////////////////////////////////////
				//필요한 문자열 추출
				var Get_area1        = priorMgrs.substr(0,1);
				var Get_area2        = priorMgrs.substr(1,1);
				var Get_no4_middle   = priorMgrs.substr(2,2);
				var Get_no4_after    = priorMgrs.substring(7,9);
				var Get_no10_middle  = priorMgrs.substring(4,7);
				var Get_no10_after   = priorMgrs.substring(9,12);

				Get_no4_middle  = Number(Get_no4_middle);
				Get_no4_after   = Number(Get_no4_after);
				Get_no10_middle = Number(Get_no10_middle);
				Get_no10_after  = Number(Get_no10_after);
				
				/////////////////////////////////////////////////////////////////////////////////////////
				//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
				var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
				var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

				var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
				var marker_y_value = Get_no4_after*1000+Get_no10_after;

				//상대 거리를 구함
				var left_value = marker_x_value - lefttop_x_value;
				left_value     = Math.floor(left_value*(tileSize/1000));

				var top_value  = lefttop_y_value - marker_y_value;
				top_value      = Math.floor(top_value*(tileSize/1000));

				//this.addlines(innerDiv2,priorX,priorY,nowX,nowY);//라인추가
				//var Mgrsinfo = MgrsArray2[MgrsArray_num]; //현재거리
				//var mgrs_str = Mgrsinfo[0];

				var m_icon   = "icon";
				var m_width  = 130;
				var m_height = 66;

				//이동시 면적좌표 다시설정  //////////////////////////////////////////////////////////////////////
				/*var Mgrsinfo3 = MgrsArray2[MgrsArray_num-1];
				Mgrsinfo3[1]  = null;
				Mgrsinfo3[2]  = null;
				Mgrsinfo3[1]  = left_value;
				Mgrsinfo3[2]  = top_value;
				//////////////////////////////////////////////////////////////////////////////////////////////////*/

				//선추가
				DistanceArray[Distancecounter] = [nowMgrs, m_icon ,m_width, m_height,4,distance,null,null,left_value,top_value,nowX,nowY];

				//DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,4,distance,null,null,priorX,priorY,nowX,nowY];
				
				Distancecounter++;

				this.checkdistance();
			}		
			
		}else if (indexcouter == 0){ //시작점

			if (DrawMode == "line"){

				var Mgrsinfo = MgrsArray[MgrsArray_num]; //현재거리

				var mgrs_str = Mgrsinfo[0];
				var m_icon   = "icon";
				var m_width  = 45;
				var m_height = 17;

				//거리시작값
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,1];
				
				Distancecounter++;

				this.checkdistance();

				var Menulog = document.getElementById("distance_view");
	
				Menulog.innerHTML ="<table width='100' height='64' border='0' background='http://map.geopis.co.kr/map/geopis/NoImg/distance_view.gif'><tr>" +
				"<td align='center' width='100' height='20'><b>총거리</b>&nbsp;<font color='blue'>"+ 0 +"km</font></td></tr><tr><td width='100' height='38'></td></tr></table>"

			}
		}

		//clickcount++;
		indexcouter++;

		return true;

	}

	//클릭지점 거리&면적좌표 구하기 
	this.addClickMaker = function(event,DrawMode) {
alert("test");
		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var Maker_leftgep = document.body.clientWidth - viewportWidth;
		var Maker_topgep  = document.body.clientHeight - viewportHeight; 

		var left_gap = Math.floor(viewportWidth/2);

		//alert(left_gap);

		var lt_no4_middle  = 0;
		var lt_no10_middle = 0;

		if (GMapidx == 0){ //처음시작할때
			var c_loc10_middle = g_loc10_middle;
			var c_loc10_after  = g_loc10_after;
		}else if (GMapidx == 1){ //Mousemove이벤트발생후
		
			if (tileSize == 200){
				var c_loc10_middle = g_loc10_middle + 653;
				var c_loc10_after  = g_loc10_after - 293;
			}else if (tileSize == 400){
				var c_loc10_middle = g_loc10_middle + 537;
				var c_loc10_after  = g_loc10_after - 240;
			}else if (tileSize == 600){
				var c_loc10_middle = g_loc10_middle + 445;
				var c_loc10_after  = g_loc10_after - 204;
			}else if (tileSize == 800){
				var c_loc10_middle = g_loc10_middle + 362;
				var c_loc10_after  = g_loc10_after - 185;
			}else if (tileSize == 1000){
				var c_loc10_middle = g_loc10_middle + 278;
				var c_loc10_after  = g_loc10_after - 165;
			}else if (tileSize == 1200){
				var c_loc10_middle = g_loc10_middle + 238;
				var c_loc10_after  = g_loc10_after - 149;
			}else if (tileSize == 1400){
				var c_loc10_middle = g_loc10_middle + 207;
				var c_loc10_after  = g_loc10_after - 118;
			}else if (tileSize == 1600){
				var c_loc10_middle = g_loc10_middle + 175;
				var c_loc10_after  = g_loc10_after - 88;
			}else if (tileSize == 1800){
				var c_loc10_middle = g_loc10_middle + 156;
				var c_loc10_after  = g_loc10_after - 80;
			}else if (tileSize == 2000){
				var c_loc10_middle = g_loc10_middle + 125;
				var c_loc10_after  = g_loc10_after - 80;
			}

		}

		if ((event.clientX - Maker_leftgep) < left_gap){
			left_gap = left_gap - (event.clientX - Maker_leftgep);
			lt_no4_middle = g_loc4_middle-Math.floor(left_gap/tileSize)-1;
			lt_no10_middle = left_gap%tileSize;
			lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
			lt_no10_middle = c_loc10_middle-lt_no10_middle;
			if (lt_no10_middle < 0) {
				lt_no10_middle = 1000+lt_no10_middle;
				lt_no4_middle = lt_no4_middle - 1;
			}
		}else{
			left_gap = (event.clientX - Maker_leftgep) - left_gap;
			lt_no4_middle = g_loc4_middle+Math.floor(left_gap/tileSize)-1;
			lt_no10_middle = left_gap%tileSize;
			lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
			lt_no10_middle = lt_no10_middle+c_loc10_middle;
			if (lt_no10_middle > 999) {
				lt_no10_middle = lt_no10_middle-1000;
				lt_no4_middle = lt_no4_middle + 1;
			}
		}
		
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after  = 0;
		var lt_no10_after = 0;

		if ((event.clientY - Maker_topgep) < top_gap){
			top_gap = top_gap - (event.clientY - Maker_topgep);
			lt_no4_after = g_loc4_after+Math.floor(top_gap/tileSize);
			lt_no10_after = top_gap%tileSize;
			lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
			lt_no10_after = lt_no10_after+c_loc10_after;
			if (lt_no10_after > 999) {
				lt_no10_after = lt_no10_after-1000;
				lt_no4_after = lt_no4_after + 1;
			}
		}else{
			top_gap = (event.clientY - Maker_topgep) - top_gap;

			lt_no4_after = g_loc4_after-Math.floor(top_gap/tileSize);
			lt_no10_after = top_gap%tileSize;
			lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
			lt_no10_after = c_loc10_after-lt_no10_after;
			if (lt_no10_after < 0) {
				lt_no10_after = 1000+lt_no10_after;
				lt_no4_after = lt_no4_after - 1;
			}
		}

		
		///////////////////////////////////////////////////////
		var lt_areanum1 = g_loc_areanum1;
		var lt_areanum2 = g_loc_areanum2;

		if (lt_no10_middle > 1000){		
			lt_no10_middle = lt_no10_middle - 1000;
			lt_no4_middle  = lt_no4_middle + 1;
		}else if (lt_no10_middle < 0){
			lt_no10_middle = 1000 + lt_no10_middle;
			lt_no4_middle  = lt_no4_middle - 1;
		}

		if (lt_no10_after > 1000){
			lt_no10_after = lt_no10_after-1000;
			lt_no4_after  = lt_no4_after + 1;
		}else if (lt_no10_after < 0){
			lt_no10_after = 1000 + lt_no10_after;
			lt_no4_after  = lt_no4_after - 1;
		}

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){
			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;
		}else if (lt_no4_middle < 0){
			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
	
		if (lt_no4_after > 99){
			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	
		}else if (lt_no4_after < 0){
			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////

		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if(lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		}else if(lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}

		var mgrs_str;

		mgrs_str = strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;

		//alert(mgrs_str);

		var m_icon   = "http://map.geopis.co.kr/map/geopis/NoImg/distance_icon.gif"; 
	    var m_width  = 11;
		var m_height = 11;
	   

		
		 //클릭지점 Loc10, 화면좌표x,화면좌표y 좌표배열에추가
		 //MgrsArray[Mgrscounter]  = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep];

		 //alert(event.screenX + " " +event.clientX);
		 //MgrsArray[Mgrscounter] = [mgrs_str,event.screenX,event.screenY]; 
		 //MgrsArray[Mgrscounter] = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep];

		 //var lefttop_loc10 = this.getLeftTopLocationMGRS4();

		 if (DrawMode == "line"){

			 //클릭지점이미지추가 
			DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,0]; 

			this.checkdistance();

			MgrsArray[Mgrscounter] = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep,Groupidx];

			Mgrscounter++;
			Distancecounter++;

			this.addition(Mgrscounter-1,DrawMode); //한단계전까지 거리구하기

		 }else if (DrawMode == "area"){
			if (Groupidx2 == 2){

				//클릭지점이미지추가 
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,0]; 

				this.checkdistance();

				MgrsArray2[Mgrscounter2] = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep];

				Mgrscounter2++;
				Distancecounter++;

				this.addition(Mgrscounter2-1,DrawMode); //한단계전까지 거리구하기

			}else if (Groupidx2 == 3){

				//클릭지점이미지추가 
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,0]; 

				this.checkdistance();

				MgrsArray3[Mgrscounter3] = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep];

				Mgrscounter3++;
				Distancecounter++;

				this.addition(Mgrscounter3-1,DrawMode); //한단계전까지 거리구하기
			}else if (Groupidx2 == 4){

				//클릭지점이미지추가 
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,0]; 

				this.checkdistance();

				MgrsArray4[Mgrscounter4] = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep];

				Mgrscounter4++;
				Distancecounter++;

				this.addition(Mgrscounter4-1,DrawMode); //한단계전까지 거리구하기
			}else if (Groupidx2 == 5){

				//클릭지점이미지추가 
				DistanceArray[Distancecounter] = [mgrs_str, m_icon ,m_width, m_height,0]; 

				this.checkdistance();

				MgrsArray5[Mgrscounter5] = [mgrs_str,(event.clientX)-Maker_leftgep,(event.clientY)-Maker_topgep];

				Mgrscounter5++;
				Distancecounter++;

				this.addition(Mgrscounter5-1,DrawMode); //한단계전까지 거리구하기
			}else{
				alert("면적재기는 4회까지 가능 합니다.");
				return false;
				
			}

		 }
		  	
		return true; 	
	}

	//◆◆◆
	// START:checkdistance 거리 지도영역에 추가
	this.checkdistance = function() {

		var innerDiv2 = document.getElementById(m_inner_div);  //각 타일을 내부 div에 추가한다.	

		//왼쪽 상단의 MGRS좌표를 구함
		var lefttop_loc10 = this.getLeftTopLocationMGRS2();

		var lefttop_area1       = lefttop_loc10.substr(0,1);
		var lefttop_area2       = lefttop_loc10.substr(1,1);
		var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
		var lefttop_no4_after   = lefttop_loc10.substring(7,9);
		var lefttop_no10_middle = lefttop_loc10.substring(4,7);
		var lefttop_no10_after  = lefttop_loc10.substring(9,12);

		lefttop_no4_middle  = Number(lefttop_no4_middle);
		lefttop_no4_after   = Number(lefttop_no4_after);
		lefttop_no10_middle = Number(lefttop_no10_middle);
		lefttop_no10_after  = Number(lefttop_no10_after);

		for (i = 0; i < DistanceArray.length; i++) {  //<label id="iterate.visible.tiles"/>
								
			var Distanceinfo = DistanceArray[i];  //2차원 배열값을 변수에 저장
			
			if (Distanceinfo[0] != null && Distanceinfo[1] != null && Distanceinfo[2] != null && Distanceinfo[3] != null){

				var Get_area1, Get_area2, Get_no4_middle, Get_no4_after, Get_no10_middle, Get_no10_after;

				//필요한 문자열 추출
				Get_area1       = Distanceinfo[0].substr(0,1);
				Get_area2       = Distanceinfo[0].substr(1,1);
				Get_no4_middle  = Distanceinfo[0].substr(2,2);
				Get_no4_after   = Distanceinfo[0].substring(7,9);
				Get_no10_middle = Distanceinfo[0].substring(4,7);
				Get_no10_after  = Distanceinfo[0].substring(9,12);

				//자료형변환 문자 -> 숫자
				Get_no4_middle  = Number(Get_no4_middle);
				Get_no4_after   = Number(Get_no4_after);
				Get_no10_middle = Number(Get_no10_middle);
				Get_no10_after  = Number(Get_no10_after);

				var m_areanum1;
				for (j=0; strRow.length; j++){
					if (Get_area1 == strRow[j]){
						m_areanum1 = j;
						break;
					} 			
				}

				var m_areanum2;
				for (k=0; strCol.length; k++){
					if (Get_area2 == strCol[k]){
						m_areanum2 = k;
						break;
					}
				}

				///////////////////////////////////////////////////////////////////////////////////////////
				//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
				var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
				var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

				var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
				var marker_y_value = Get_no4_after*1000+Get_no10_after;

				//상대 거리를 구함
				var left_value = marker_x_value - lefttop_x_value;
				left_value     = Math.floor(left_value*(tileSize/1000));
				var top_value  = lefttop_y_value - marker_y_value;
				top_value      = Math.floor(top_value*(tileSize/1000));

				//left_value = 1000-left_value;
				//alert(lefttop_loc10+" "+left_value);
				//if (left_value > -1 && top_value > -1){

					var MakerName =  i + Distanceinfo[1];  //마커명 생성 
			
					if (Distanceinfo[4] == "1"){ //거리시작값

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크

						if (!Makerdiv){ 	
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left = left_value - (Distanceinfo[2]/2-22) + "px";
							dialog.style.top  = top_value - (Distanceinfo[3]/2-10) + "px";
							dialog.style.width = "45px";
							dialog.style.height = "17px";
							dialog.style.zIndex = 2;
							//dialog.style.backgroundColor="transparent";
							dialog.setAttribute("name", Distanceinfo[1]);
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<table width='45' height='17' border='0' bgcolor='white'><tr>" +
						    "<td align='center'><font color='blue'>시작</font></td></tr></table>";
							innerDiv2.appendChild(dialog);
						}else{
							Makerdiv.style.left = left_value - (Distanceinfo[2]/2-22) + "px";
							Makerdiv.style.top  = top_value - (Distanceinfo[3]/2-10) + "px";
						}

					}else if (Distanceinfo[4] == "2"){ //거리중간값

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크

						if (!Makerdiv){ 	
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left = left_value - (Distanceinfo[2]/2-22) + "px";
							dialog.style.top  = top_value - (Distanceinfo[3]/2-10) + "px";
							dialog.style.width = "45px";
							dialog.style.height = "17px";
							dialog.style.zIndex = 2;
							dialog.setAttribute("name", Distanceinfo[1]);
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<table width='45' height='17' border='0' bgcolor='white'><tr>" +
						    "<td align='center'><font color='blue'>"+ Distanceinfo[5] +"km</font></td></tr></table>";
							innerDiv2.appendChild(dialog);
						}else{
							Makerdiv.style.left = left_value - (Distanceinfo[2]/2-22) + "px";
							Makerdiv.style.top  = top_value - (Distanceinfo[3]/2-10) + "px";
						}

					}else if(Distanceinfo[4] == "3"){  //거리최종값

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크
						if (!Makerdiv){ 	
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left = left_value - (Distanceinfo[2]/2-64) + "px";
							dialog.style.top  = top_value - (Distanceinfo[3]/2-32) + "px";
							dialog.style.width    = "130px";
							dialog.style.height   = "66px";
							dialog.style.zIndex = 4;
							dialog.setAttribute("name", Distanceinfo[1]);
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<table width='130' height='65' border='0' background='http://map.geopis.co.kr/map/geopis/NoImg/last_distance.gif' style='background-repeat:no-repeat;'><tr><td width='80' height='1' colsapn='4'></td></tr><tr>" +
							"<td align='left' valign='middle' width='50' height='10'><b>&nbsp;총거리</b></td><td width='50' height='14'><font color='blue'>"+ alldistance +"km</font></td><td width='11' height='9' background='http://map.geopis.co.kr/map/geopis/NoImg/distance_cancel.gif' style='background-repeat:no-repeat; cursor:hand;'onclick='javascript:RemoveDMaker("+Mgrsindex+","+indexcouter+");'alt='닫기'></td><td width='3' height='9'></td></tr><tr><td align='left'width='64' height='10'><b>&nbsp;도&nbsp;&nbsp;&nbsp;보</b></td><td colspan='3'><font color='blue'>"+ Distanceinfo[6] +"</font></td></tr><tr><td align='left'width='64' height='10'><b>&nbsp;자전거</b></td><td colspan='3'><font color='blue'>"+ Distanceinfo[7] +"</font></td></tr></table>";
							innerDiv2.appendChild(dialog);
						}else{
							Makerdiv.style.left = left_value - (Distanceinfo[2]/2-64) + "px";
							Makerdiv.style.top  = top_value - (Distanceinfo[3]/2-32) + "px";
						}

					}else if(Distanceinfo[4] == "4"){ // line 추가

						if(!document.namespaces.v){
							document.namespaces.add("v","urn:schemas-microsoft-com:vml"); //VML을 위한 Namespace 정의
							document.createStyleSheet().addRule("v\\:*","behavior: url(#default#VML);") //VML을 위한 behavior정의
							
						}

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크
						if (!Makerdiv){ 
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left = left_value - Distanceinfo[10] + "px";
							dialog.style.top  = top_value - Distanceinfo[11] + "px";
							dialog.style.zIndex   = 1;
							dialog.setAttribute("name", Distanceinfo[1] + "line");
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<v:line id=lines style='position:absolute;' fillcolor ='#6B8EF0' from='"+Distanceinfo[8]+"px,"+Distanceinfo[9]+"px' to='"+Distanceinfo[10]+"px,"+Distanceinfo[11]+"px' strokeweight='2.2pt' strokecolor='#6B8EF0' strokeStyle ='single'/>";
							innerDiv2.appendChild(dialog);
						}else{

							//alert(Makerdiv.style.left);
							Makerdiv.style.left = left_value - Distanceinfo[10] + "px";
							Makerdiv.style.top  = top_value - Distanceinfo[11] + "px";
						}

					}else if (Distanceinfo[4] == "5"){ // area 추가
					
						if(!document.namespaces.v){
							document.namespaces.add("v","urn:schemas-microsoft-com:vml"); //VML을 위한 Namespace 정의
							document.createStyleSheet().addRule("v\\:*","behavior: url(#default#VML);") //VML을 위한 behavior정의
						}

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크
						if (!Makerdiv){ 
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left = left_value - Distanceinfo[10] + "px";
							dialog.style.top  = top_value - Distanceinfo[11] + "px";
							//dialog.style.width    = "130px";
							//dialog.style.height   = "66px";
							//dialog.style.border   = 1;
							dialog.style.zIndex   = 1;
							dialog.setAttribute("name", Distanceinfo[1] + "area");
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<v:shape style='position:absolute; width:200; height:200' coordorigin='0 0' coordsize='200 200' stroke='true' strokecolor='#6B8EF0' strokeweight='0.5'><v:fill on='true' color='#6B8EF0'opacity='0.5'/><v:path v='"+Distanceinfo[12]+"'/></v:shape>";
							innerDiv2.appendChild(dialog);
						}else{

							//alert(Makerdiv.style.left);
							Makerdiv.style.left = left_value - Distanceinfo[10] + "px";
							Makerdiv.style.top  = top_value - Distanceinfo[11] + "px";
						}


					}else if(Distanceinfo[4] == "6"){ //최종 면적값

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크
						if (!Makerdiv){ 	
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left = left_value - (Distanceinfo[2]/2-48) + "px";
							dialog.style.top  = top_value - (Distanceinfo[3]/2-22) + "px";
							dialog.style.width    = "100px";
							dialog.style.height   = "46px";
							dialog.style.zIndex = 4;
							dialog.setAttribute("name", Distanceinfo[1]);
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<table width='100' height='46' border='0' background='http://map.geopis.co.kr/map/geopis/NoImg/last_area.gif'><tr><td width='80' height='1' colsapn='2'></td></tr><tr>" +
							"<td align='center' valign='middle' width='76' height='22'><b>&nbsp;총면적</b></td><td valign='middle' width='11' height='9' background='http://map.geopis.co.kr/map/geopis/NoImg/distance_cancel.gif' style='background-repeat:no-repeat; cursor:hand;'onclick='javascript:RemoveDMaker("+Mgrsindex+","+indexcouter+");'alt='닫기'></td></tr><tr><td align='center' colspan='2'><font color='blue'>"+ Distanceinfo[13] +"</font></td></tr></table>";
							innerDiv2.appendChild(dialog);
						}else{
							Makerdiv.style.left = left_value - (Distanceinfo[2]/2-48) + "px";
							Makerdiv.style.top  = top_value - (Distanceinfo[3]/2-22) + "px";
						}
						
					}else if(Distanceinfo[4] == "0"){ //이미지 추가 
					
						var img = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크 
						if (!img){       						
							img = document.createElement("img");  //<label id="create.img"/>		
							img.src = Distanceinfo[1];
							img.style.position = "absolute";
							img.style.left = left_value - (Distanceinfo[2]/2);
							img.style.top  = top_value - (Distanceinfo[3]/2);
							img.style.zIndex = 3;
							img.setAttribute("width", Distanceinfo[2]); 
							img.setAttribute("height", Distanceinfo[3]);
							img.setAttribute("id", MakerName); 
							img.setAttribute("name", "icon");
							innerDiv2.appendChild(img);															
						}else{
							img.style.left = left_value - (Distanceinfo[2]/2);
							img.style.top  = top_value - (Distanceinfo[3]/2);
						}

						visibleTilesMap["icon"] = true;  //타일맵에 현재 보여지는 아이콘 추가  
					}
			}
		}
		return true;
	}
	// END:checkdistance


	//마커추가함수
	this.PMaker = function(m_phi, m_lam, m_icon ,m_width, m_height) {

		var m_phi, m_lam, m_icon,m_width, m_height;
		var strMGRS = this.GP2TM(m_phi,m_lam);

		//alert(strMGRS);
		/*var test_str  = strMGRS.substring(10,12);
		var test_str2 = strMGRS.substring(0,10);
		test_str = Number(test_str);
		test_str = test_str+counter*10;
		strMGRS  = test_str2+test_str;*/

		//마커 Loc10, 아이콘이미지,이미지 넓이,높이
		MakerArray[counter] = [strMGRS, m_icon ,m_width, m_height];   
		counter++;
	
		return counter-1; //마커NUM 반환	
	}

	//마커삭제함수
	this.RemovePMaker = function(r_num) {

		var Makerinfo = MakerArray[r_num];
		var MakerName = r_num + Makerinfo[0];  //마커명 생성 

			Makerinfo[0] = null;
			Makerinfo[1] = null;
			Makerinfo[2] = null;
			Makerinfo[3] = null;
			Makerinfo[4] = null;
			Makerinfo[5] = null;
			Makerinfo[6] = null;
			Makerinfo[7] = null;
			Makerinfo[8] = null;

		var RemoveMaker = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크
		var innerDiv2    = document.getElementById(m_inner_div);

		var divs  = innerDiv2.getElementsByTagName("div");
		for (i = 0; i < divs.length; i++) {
			var id   = divs[i].getAttribute("id");			
				if (id == MakerName){
					this.purge(divs[i]);
					innerDiv2.removeChild(divs[i]);
					i--;  // compensate for live nodelist
					break;
				}
				
		}

		var imgs  = innerDiv2.getElementsByTagName("img");
		for (j = 0; j < imgs.length; j++) {
			var id   = imgs[j].getAttribute("id");
				if (id == MakerName){
					this.purge(imgs[j]);
					innerDiv2.removeChild(imgs[j]);
					j--;  // compensate for live nodelist
					break;
				}			
		}

		this.RemoveTooltip();  //툴팁삭제

		return true;
	}

	//마커key지정함수
	this.MakerkeySetup =  function(m_num, m_keyvalue) {

		var m_num, m_keyvalue;
		var Makerinfo = MakerArray[m_num];
		
		Makerinfo[4] = m_keyvalue;

		//alert(m_num + " " +Makerinfo[4]);

		return Makerinfo[4]; //마커고유키 반환	
	}

	//마커key삭제함수
	this.RemovePMakerkey = function(m_key) {
		
		var m_key;

		//alert(m_key);

		for (i = 0; i < MakerArray.length; i++) { 

			var Makerinfo = MakerArray[i];  //2차원 배열값을 변수에 저장 
			var MakerName = i + Makerinfo[0];  //마커명 생성
				
			if (Makerinfo[4] == m_key){
				
				Makerinfo[0] = null;	
				Makerinfo[1] = null;
				Makerinfo[2] = null;
				Makerinfo[3] = null;
				Makerinfo[4] = null;
				Makerinfo[5] = null;
				Makerinfo[6] = null;
				Makerinfo[7] = null;
				Makerinfo[8] = null;
				
				var divs     = innerDiv2.getElementsByTagName("div");
				for (j = 0; j < divs.length; j++) {
					var id   = divs[j].getAttribute("id");			
						if (id == MakerName){
							this.purge(divs[j]);
							innerDiv2.removeChild(divs[j]);
							j--;  // compensate for live nodelist
						}			
				}

				var imgs  = innerDiv2.getElementsByTagName("img");
				for (k = 0; k < imgs.length; k++) {
					var id   = imgs[k].getAttribute("id");
						if (id == MakerName){
							this.purge(imgs[k]);
							innerDiv2.removeChild(imgs[k]);
							k--;  // compensate for live nodelist					
						}			
				}
				
			}
			
		}
		
		this.RemoveTooltip();  //툴팁삭제

		return true;
	}	

	//tooltip내용추가 함수(기존방식)
	/*this.tooltipSetup = function(t_num, t_name, t_addr, t_phone, t_type){

		var t_num, t_name, t_addr, t_phone, t_type;
		var Makerinfo = MakerArray[t_num];

			Makerinfo[5] = t_name;
			Makerinfo[6] = t_addr;
			Makerinfo[7] = t_phone;
			Makerinfo[8] = t_type;
	
		return true;

	}*/

	//tooltip내용추가 함수 
	this.tooltipSetup = function(t_num, t_contents, t_width, t_height){

		var t_num, t_name, t_addr, t_phone, t_type;
		var Makerinfo = MakerArray[t_num];

			Makerinfo[5] = t_contents;
			Makerinfo[6] = t_width;
			Makerinfo[7] = t_height;
			//Makerinfo[8] = t_type;

		
		//alert(Makerinfo[0] + " " + Makerinfo[4] + " " + Makerinfo[5] + " " + Makerinfo[6] + " " +  Makerinfo[7] + " " + Makerinfo[8]);

		return true;

	}

	
	//tooltip화면영역 추가함수
	this.addtooltip = function(t_num){

		this.RemoveTooltip();  //툴팁삭제

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var innerDiv2 = document.getElementById(m_inner_div);  //각 타일을 내부 div에 추가한다.	
		//왼쪽 상단의 MGRS좌표를 구함
		var lefttop_loc10 = this.getLeftTopLocationMGRS2();

		var lefttop_area1       = lefttop_loc10.substr(0,1);
		var lefttop_area2       = lefttop_loc10.substr(1,1);
		var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
		var lefttop_no4_after   = lefttop_loc10.substring(7,9);
		var lefttop_no10_middle = lefttop_loc10.substring(4,7);
		var lefttop_no10_after  = lefttop_loc10.substring(9,12);

		lefttop_no4_middle  = Number(lefttop_no4_middle);
		lefttop_no4_after   = Number(lefttop_no4_after);
		lefttop_no10_middle = Number(lefttop_no10_middle);
		lefttop_no10_after  = Number(lefttop_no10_after);

		var Makerinfo = MakerArray[t_num];  //2차원 배열값을 변수에 저장
		var Get_area1, Get_area2, Get_no4_middle, Get_no4_after, Get_no10_middle, Get_no10_after;

		//필요한 문자열 추출
		Get_area1       = Makerinfo[0].substr(0,1);
		Get_area2       = Makerinfo[0].substr(1,1);
		Get_no4_middle  = Makerinfo[0].substr(2,2);
		Get_no4_after   = Makerinfo[0].substring(7,9);
		Get_no10_middle = Makerinfo[0].substring(4,7);
		Get_no10_after  = Makerinfo[0].substring(9,12);

		//자료형변환 문자 -> 숫자
		Get_no4_middle  = Number(Get_no4_middle);
		Get_no4_after   = Number(Get_no4_after);
		Get_no10_middle = Number(Get_no10_middle);
		Get_no10_after  = Number(Get_no10_after);

		var m_areanum1;
		for (j=0; strRow.length; j++){
			if (Get_area1 == strRow[j]){
				m_areanum1 = j;
				break;
			} 			
		}

		var m_areanum2;
		for (k=0; strCol.length; k++){
			if (Get_area2 == strCol[k]){
				m_areanum2 = k;
				break;
			}
		}

		///////////////////////////////////////////////////////////////////////////////////////////
		//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
		var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
		var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

		var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
		var marker_y_value = Get_no4_after*1000+Get_no10_after;

		//상대 거리를 구함
		var left_value = marker_x_value - lefttop_x_value;
		left_value     = Math.floor(left_value*(tileSize/1000));
		var top_value  = lefttop_y_value - marker_y_value;
		top_value      = Math.floor(top_value*(tileSize/1000));

		var Move_leftvalue;
		var Move_topvalue;

		if (left_value >= 136 && left_value <= viewportWidth - 125 && top_value > 173){

			Move_leftvalue = left_value - (Makerinfo[2]/2 +115);
			Move_topvalue  = top_value - (Makerinfo[3]/2 +160);

		}else if (left_value < 136 && top_value < 173){
			 //alert('왼위쪽짤림');	
			if(tileSize == 200){
				no10_middle = no10_middle + 600;
				m_loc10_middle = m_loc10_middle - 600;
				no10_After  = no10_After  + 700;
				m_loc10_after = m_loc10_after + 700;
			}else if(tileSize == 400){
				no10_middle = no10_middle + 300;
				m_loc10_middle = m_loc10_middle - 300;
				no10_After  = no10_After  + 500;
				m_loc10_after = m_loc10_after + 500;
			}else if(tileSize == 600){
				no10_middle = no10_middle + 200;
				m_loc10_middle = m_loc10_middle - 200;
				no10_After  = no10_After  + 400;
				m_loc10_after = m_loc10_after + 400;
			}else{
				 no10_middle = no10_middle + 200;
				 m_loc10_middle = m_loc10_middle - 200;
				 no10_After  = no10_After  + 200;
				 m_loc10_after = m_loc10_after + 200;
			}

			//변경된 Loc10체크(Loc4변경&Loc10변경)
			if (no10_middle > 1000){
				no4_middle  = no4_middle - 1;
				no10_middle = no10_middle - 1000;
			}else if (no10_middle < 0){
				no4_middle = no4_middle + 1;
				no10_middle = 1000 + no10_middle;
			}

			if (no10_After > 1000){
				no4_After = no4_After + 1;
				no10_After = no10_After - 1000;
			}else if (no10_After < 0){
				no4_After = no4_After - 1;
				no10_After = 1000 + no10_After;
			}
			
			//변경된 Loc4체크(Area변경&Loc4변경) 
			if (no4_middle > 99){
				areanum1 = areanum1 + 1;
				no4_middle = no4_middle - 100;
			}else if (no4_middle < 0){
				areanum1   = areanum1 - 1;			
				no4_middle = 100 + no4_middle;
			}
			
			if (no4_After > 99){
				areanum2 = areanum2 + 1;
				no4_After = no4_After - 100;	
			}else if (no4_After < 0){
				areanum2 = areanum2 - 1;
				no4_After = 100 + no4_After;		
			}

			//화면출력용 변수 
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//마커계산용 변수 처리 ★★★
			m_loc_areanum1	= areanum1;
			m_loc_areanum2	= areanum2;
			m_loc4_middle	= no4_middle;
			m_loc4_after	= no4_After;


			if (tileSize == 200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1200){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1400){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1600){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-135;
			}else if (tileSize == 1800){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-140;
			}else if (tileSize == 2000){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-145;
			}

			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (m_loc10_middle > 1000){		
				m_loc10_middle = m_loc10_middle - 1000;
				m_loc4_middle  = m_loc4_middle + 1;
			}else if (m_loc10_middle < 0){
				m_loc10_middle = 1000 + m_loc10_middle;
				m_loc4_middle  = m_loc4_middle - 1;
			}

			if (m_loc10_after > 1000){
				m_loc10_after = m_loc10_after-1000;
				m_loc4_after  = m_loc4_after + 1;
			}else if (m_loc10_after < 0){
				m_loc10_after = 1000+m_loc10_after;
				m_loc4_after  = m_loc4_after - 1;
			}

			if (m_loc4_middle > 99){
				m_loc_areanum1 = m_loc_areanum1 + 1;
				m_loc4_middle = m_loc4_middle - 100;
			}else if (m_loc4_middle < 0){

				m_loc_areanum1 = m_loc_areanum1 - 1;			
				m_loc4_middle = 100 + m_loc4_middle;
			}

			if (m_loc4_after > 99){

				m_loc_areanum2 = m_loc_areanum2 + 1;
				m_loc4_after = m_loc4_after - 100;	

			}else if (m_loc4_after < 0){

				m_loc_areanum2 = m_loc_areanum2 - 1;
				m_loc4_after = 100 + m_loc4_after;		
			}
			
			//마커계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			this.checkTiles();
			this.checkPMaker();
			//this.checkdistance();

			if(tileSize == 200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 10);
				Move_topvalue = top_value - (Makerinfo[3]/2 + 20);
			}else if(tileSize == 400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 5);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 40);
			}else if(tileSize == 600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -5);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 80);;
			}else if(tileSize == 800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -45);
				Move_topvalue = top_value - (Makerinfo[3]/2 +1);
			}else if(tileSize == 1000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -83);
				Move_topvalue = top_value - (Makerinfo[3]/2 -40);
			}else if(tileSize == 1200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -123);
				Move_topvalue = top_value - (Makerinfo[3]/2 -80);
			}else if(tileSize == 1400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -168);
				Move_topvalue = top_value - (Makerinfo[3]/2 -120);
			}else if(tileSize == 1600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -203);
				Move_topvalue = top_value - (Makerinfo[3]/2 -160);
			}else if(tileSize == 1800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -244);
				Move_topvalue = top_value - (Makerinfo[3]/2 -200);
			}else if(tileSize == 2000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 -287);
				Move_topvalue = top_value - (Makerinfo[3]/2 -240);
			}

		}else if (left_value > viewportWidth - 125 && top_value < 173){

			//alert('오른위쪽짤림');
			m_loc10_middle = m_loc10_middle + 200;
			no10_middle = no10_middle - 200;
			no10_After  = no10_After  + 200;
			m_loc10_after = m_loc10_after + 200;

			this.checkTiles();
			this.checkPMaker();
			//this.checkdistance();

			if(tileSize == 200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 152);
				Move_topvalue = top_value - (Makerinfo[3]/2 + 122);
			}else if(tileSize == 400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 192);
				Move_topvalue = top_value - (Makerinfo[3]/2 + 82);
			}else if(tileSize == 600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 232);
				Move_topvalue = top_value - (Makerinfo[3]/2 + 42);
			}else if(tileSize == 800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 272);
				Move_topvalue = top_value - (Makerinfo[3]/2 + 1);
			}else if(tileSize == 1000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 312);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 40);
			}else if(tileSize == 1200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 352);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 80);
			}else if(tileSize == 1400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 392);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 120);
			}else if(tileSize == 1600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 432);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 160);
			}else if(tileSize == 1800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 472);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 200);
			}else if(tileSize == 2000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 512);
				Move_topvalue = top_value - (Makerinfo[3]/2 - 240);
			}

		}else if (left_value >= 136 && left_value <= viewportWidth - 125 && top_value < 173){
			//alert('위쪽짤림');

			if(tileSize == 200){
				no10_After  = no10_After  + 700;
				m_loc10_after = m_loc10_after + 700;
			}else if(tileSize == 400){
				no10_After  = no10_After  + 500;
				m_loc10_after = m_loc10_after + 500;
			}else if(tileSize == 600){
				no10_After  = no10_After  + 400;
				m_loc10_after = m_loc10_after + 400;
			}else{
				no10_After  = no10_After  + 200;
				m_loc10_after = m_loc10_after + 200;
			}

			//변경된 Loc10체크(Loc4변경&Loc10변경)
			if (no10_middle > 1000){
				no4_middle  = no4_middle - 1;
				no10_middle = no10_middle - 1000;
			}else if (no10_middle < 0){
				no4_middle = no4_middle + 1;
				no10_middle = 1000 + no10_middle;
			}

			if (no10_After > 1000){
				no4_After = no4_After + 1;
				no10_After = no10_After - 1000;
			}else if (no10_After < 0){
				no4_After = no4_After - 1;
				no10_After = 1000 + no10_After;
			}
			
			//변경된 Loc4체크(Area변경&Loc4변경) 
			if (no4_middle > 99){
				areanum1 = areanum1 + 1;
				no4_middle = no4_middle - 100;
			}else if (no4_middle < 0){
				areanum1   = areanum1 - 1;			
				no4_middle = 100 + no4_middle;
			}
			
			if (no4_After > 99){
				areanum2 = areanum2 + 1;
				no4_After = no4_After - 100;	
			}else if (no4_After < 0){
				areanum2 = areanum2 - 1;
				no4_After = 100 + no4_After;		
			}

			//화면출력용 변수 
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//마커계산용 변수 처리 ★★★
			m_loc_areanum1	= areanum1;
			m_loc_areanum2	= areanum2;
			m_loc4_middle	= no4_middle;
			m_loc4_after	= no4_After;


			if (tileSize == 200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1200){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1400){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1600){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-135;
			}else if (tileSize == 1800){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-140;
			}else if (tileSize == 2000){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-145;
			}

			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (m_loc10_middle > 1000){		
				m_loc10_middle = m_loc10_middle - 1000;
				m_loc4_middle  = m_loc4_middle + 1;
			}else if (m_loc10_middle < 0){
				m_loc10_middle = 1000 + m_loc10_middle;
				m_loc4_middle  = m_loc4_middle - 1;
			}

			if (m_loc10_after > 1000){
				m_loc10_after = m_loc10_after-1000;
				m_loc4_after  = m_loc4_after + 1;
			}else if (m_loc10_after < 0){
				m_loc10_after = 1000+m_loc10_after;
				m_loc4_after  = m_loc4_after - 1;
			}

			if (m_loc4_middle > 99){
				m_loc_areanum1 = m_loc_areanum1 + 1;
				m_loc4_middle = m_loc4_middle - 100;
			}else if (m_loc4_middle < 0){

				m_loc_areanum1 = m_loc_areanum1 - 1;			
				m_loc4_middle = 100 + m_loc4_middle;
			}

			if (m_loc4_after > 99){

				m_loc_areanum2 = m_loc_areanum2 + 1;
				m_loc4_after = m_loc4_after - 100;	

			}else if (m_loc4_after < 0){

				m_loc_areanum2 = m_loc_areanum2 - 1;
				m_loc4_after = 100 + m_loc4_after;		
			}
			
			//마커계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			this.checkTiles();
			this.checkPMaker();
			//this.checkdistance();
	
			Move_leftvalue = left_value - (Makerinfo[2]/2 +115);

			if(tileSize == 200){
				Move_topvalue = top_value - (Makerinfo[3]/2 + 20);
			}else if(tileSize == 400){
				Move_topvalue = top_value - (Makerinfo[3]/2 - 40);
			}else if(tileSize == 600){
				Move_topvalue = top_value - (Makerinfo[3]/2 - 80);
			}else if(tileSize == 800){
				Move_topvalue = top_value - (Makerinfo[3]/2 + 1);
			}else if(tileSize == 1000){
				Move_topvalue = top_value - (Makerinfo[3]/2 -40);
			}else if(tileSize == 1200){
				Move_topvalue = top_value - (Makerinfo[3]/2 -80);
			}else if(tileSize == 1400){
				Move_topvalue = top_value - (Makerinfo[3]/2 -120);
			}else if(tileSize == 1600){
				Move_topvalue = top_value - (Makerinfo[3]/2 -160);
			}else if(tileSize == 1800){
				Move_topvalue = top_value - (Makerinfo[3]/2 -200);
			}else if(tileSize == 2000){
				Move_topvalue = top_value - (Makerinfo[3]/2 -240);
			}

		}else if (left_value < 136 && top_value > 173){
			 //alert('왼쪽짤림');

			 if(tileSize == 200){
				no10_middle = no10_middle + 600;
				m_loc10_middle = m_loc10_middle - 600;
			}else if(tileSize == 400){
				no10_middle = no10_middle + 300;
				m_loc10_middle = m_loc10_middle - 300;
			}else if(tileSize == 600){
				no10_middle = no10_middle + 200;
				m_loc10_middle = m_loc10_middle - 200;
			}else{
				 no10_middle = no10_middle + 200;
				 m_loc10_middle = m_loc10_middle - 200;
			}

			//변경된 Loc10체크(Loc4변경&Loc10변경)
			if (no10_middle > 1000){
				no4_middle  = no4_middle - 1;
				no10_middle = no10_middle - 1000;
			}else if (no10_middle < 0){
				no4_middle = no4_middle + 1;
				no10_middle = 1000 + no10_middle;
			}

			if (no10_After > 1000){
				no4_After = no4_After + 1;
				no10_After = no10_After - 1000;
			}else if (no10_After < 0){
				no4_After = no4_After - 1;
				no10_After = 1000 + no10_After;
			}
			
			//변경된 Loc4체크(Area변경&Loc4변경) 
			if (no4_middle > 99){
				areanum1 = areanum1 + 1;
				no4_middle = no4_middle - 100;
			}else if (no4_middle < 0){
				areanum1   = areanum1 - 1;			
				no4_middle = 100 + no4_middle;
			}
			
			if (no4_After > 99){
				areanum2 = areanum2 + 1;
				no4_After = no4_After - 100;	
			}else if (no4_After < 0){
				areanum2 = areanum2 - 1;
				no4_After = 100 + no4_After;		
			}

			//화면출력용 변수 
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//마커계산용 변수 처리 ★★★
			m_loc_areanum1	= areanum1;
			m_loc_areanum2	= areanum2;
			m_loc4_middle	= no4_middle;
			m_loc4_after	= no4_After;


			if (tileSize == 200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1200){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1400){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1600){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-135;
			}else if (tileSize == 1800){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-140;
			}else if (tileSize == 2000){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-145;
			}

			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (m_loc10_middle > 1000){		
				m_loc10_middle = m_loc10_middle - 1000;
				m_loc4_middle  = m_loc4_middle + 1;
			}else if (m_loc10_middle < 0){
				m_loc10_middle = 1000 + m_loc10_middle;
				m_loc4_middle  = m_loc4_middle - 1;
			}

			if (m_loc10_after > 1000){
				m_loc10_after = m_loc10_after-1000;
				m_loc4_after  = m_loc4_after + 1;
			}else if (m_loc10_after < 0){
				m_loc10_after = 1000+m_loc10_after;
				m_loc4_after  = m_loc4_after - 1;
			}

			if (m_loc4_middle > 99){
				m_loc_areanum1 = m_loc_areanum1 + 1;
				m_loc4_middle = m_loc4_middle - 100;
			}else if (m_loc4_middle < 0){

				m_loc_areanum1 = m_loc_areanum1 - 1;			
				m_loc4_middle = 100 + m_loc4_middle;
			}

			if (m_loc4_after > 99){

				m_loc_areanum2 = m_loc_areanum2 + 1;
				m_loc4_after = m_loc4_after - 100;	

			}else if (m_loc4_after < 0){

				m_loc_areanum2 = m_loc_areanum2 - 1;
				m_loc4_after = 100 + m_loc4_after;		
			}
			
			//마커계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			this.checkTiles();
			this.checkPMaker();
			//this.checkdistance();

			if(tileSize == 200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 10);
			}else if(tileSize == 400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 5);
			}else if(tileSize == 600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 5);
			}else if(tileSize == 800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 45);
			}else if(tileSize == 1000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 83);
			}else if(tileSize == 1200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 123);
			}else if(tileSize == 1400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 168);
			}else if(tileSize == 1600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 203);
			}else if(tileSize == 1800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 244);
			}else if(tileSize == 2000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 - 287);
			}
			Move_topvalue  = top_value - (Makerinfo[3]/2 +160);

		}else if (left_value > viewportWidth - 125 && top_value > 173){
			 //alert('오른쪽짤림');
			if(tileSize == 200){
				no10_middle = no10_middle - 600;
				m_loc10_middle = m_loc10_middle + 600;
			}else if(tileSize == 400){
				no10_middle = no10_middle - 300;
				m_loc10_middle = m_loc10_middle + 300;
			}else if(tileSize == 600){
				no10_middle = no10_middle - 200;
				m_loc10_middle = m_loc10_middle + 200;
			}else{
				 no10_middle = no10_middle - 200;
				 m_loc10_middle = m_loc10_middle + 200;
			}

			//변경된 Loc10체크(Loc4변경&Loc10변경)
			if (no10_middle > 1000){
				no4_middle  = no4_middle - 1;
				no10_middle = no10_middle - 1000;
			}else if (no10_middle < 0){
				no4_middle = no4_middle + 1;
				no10_middle = 1000 + no10_middle;
			}

			if (no10_After > 1000){
				no4_After = no4_After + 1;
				no10_After = no10_After - 1000;
			}else if (no10_After < 0){
				no4_After = no4_After - 1;
				no10_After = 1000 + no10_After;
			}
			
			//변경된 Loc4체크(Area변경&Loc4변경) 
			if (no4_middle > 99){
				areanum1 = areanum1 + 1;
				no4_middle = no4_middle - 100;
			}else if (no4_middle < 0){
				areanum1   = areanum1 - 1;			
				no4_middle = 100 + no4_middle;
			}
			
			if (no4_After > 99){
				areanum2 = areanum2 + 1;
				no4_After = no4_After - 100;	
			}else if (no4_After < 0){
				areanum2 = areanum2 - 1;
				no4_After = 100 + no4_After;		
			}

			//화면출력용 변수 
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//마커계산용 변수 처리 ★★★
			m_loc_areanum1	= areanum1;
			m_loc_areanum2	= areanum2;
			m_loc4_middle	= no4_middle;
			m_loc4_after	= no4_After;


			if (tileSize == 200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1200){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1400){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1600){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-135;
			}else if (tileSize == 1800){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-140;
			}else if (tileSize == 2000){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-145;
			}

			if (m_loc10_middle > 1000){		
				m_loc10_middle = m_loc10_middle - 1000;
				m_loc4_middle  = m_loc4_middle + 1;
			}else if (m_loc10_middle < 0){
				m_loc10_middle = 1000 + m_loc10_middle;
				m_loc4_middle  = m_loc4_middle - 1;
			}

			if (m_loc10_after > 1000){
				m_loc10_after = m_loc10_after-1000;
				m_loc4_after  = m_loc4_after + 1;
			}else if (m_loc10_after < 0){
				m_loc10_after = 1000+m_loc10_after;
				m_loc4_after  = m_loc4_after - 1;
			}

			if (m_loc4_middle > 99){
				m_loc_areanum1 = m_loc_areanum1 + 1;
				m_loc4_middle = m_loc4_middle - 100;
			}else if (m_loc4_middle < 0){

				m_loc_areanum1 = m_loc_areanum1 - 1;			
				m_loc4_middle = 100 + m_loc4_middle;
			}

			if (m_loc4_after > 99){

				m_loc_areanum2 = m_loc_areanum2 + 1;
				m_loc4_after = m_loc4_after - 100;	

			}else if (m_loc4_after < 0){

				m_loc_areanum2 = m_loc_areanum2 - 1;
				m_loc4_after = 100 + m_loc4_after;		
			}
			
			//마커계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			this.checkTiles();
			this.checkPMaker();
			//this.checkdistance();

			if(tileSize == 200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 232);
			}else if(tileSize == 400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 232);
			}else if(tileSize == 600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 232);
			}else if(tileSize == 800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 272);
			}else if(tileSize == 1000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 312);
			}else if(tileSize == 1200){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 352);
			}else if(tileSize == 1400){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 392);
			}else if(tileSize == 1600){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 432);
			}else if(tileSize == 1800){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 472);
			}else if(tileSize == 2000){
				Move_leftvalue = left_value - (Makerinfo[2]/2 + 512);
			}
			Move_topvalue  = top_value - (Makerinfo[3]/2 +160);
		}

		var tooltipdiv = document.getElementById("tooltip")
		if (!tooltipdiv){

			var gep_left =  Makerinfo[6] - 258;
			var gep_top  =  Makerinfo[7] - 159;

			/*var dialog = document.createElement("div");
			dialog.style.position = "absolute";
			dialog.style.left     = Move_leftvalue + "px";
			dialog.style.top      = Move_topvalue + "px";
			dialog.style.width    = "258px";
			dialog.style.height   = "159px";
			dialog.style.zIndex   = 3;
			dialog.setAttribute("id", "tooltip");*/

			var dialog = document.createElement("div");
			dialog.style.position = "absolute";
			dialog.style.left     = Move_leftvalue + "px";
			dialog.style.top      = (Move_topvalue-gep_top) + "px";
			dialog.style.width    = Makerinfo[6];
			dialog.style.height   = Makerinfo[7];
			dialog.style.zIndex   = 3;
			dialog.setAttribute("id", "tooltip");

			//onmouseover='javascript:addtooltip("+i+");'

			dialog.innerHTML = Makerinfo[5];
			//dialog.innerHTML = "<table width='258' height='159' border='0' background='http://image.paran.com/search/local/200710/images/landmap/tooltip.gif' style='background-repeat:no-repeat;'><tr><td width='248' height='10' colspan='3'></td></tr><tr><td width='10' height='15'>&nbsp;</td><td align='left' valign='middle' width='232' height='15'>"+Makerinfo[5]+"</td><td width='26' height='15' ><img src='http://image.paran.com/search/local/200710/images/landmap/tooltip_close.gif' name='MakerName' onclick='javascript:RemoveTooltip();' style='cursor:hand;'></img></td></tr><tr><td width='10' height='26'>&nbsp;</td><td colspan='2' width='248' height='26' valign='middle'>"+Makerinfo[6]+"</td></tr><tr><td width='248' height='10' colspan='3'>&nbsp;</td></tr></table>";
			innerDiv2.appendChild(dialog);
		}
	}

	//◆◆◆
	// START:checkPMaker 마커 지도영역에 추가
	this.checkPMaker = function() {

		var innerDiv2 = document.getElementById(m_inner_div);  //각 타일을 내부 div에 추가한다.	

		//왼쪽 상단의 MGRS좌표를 구함
		//var lefttop_loc10 = this.getLeftTopLocationMGRS();
		var lefttop_loc10 = this.getLeftTopLocationMGRS2();

		//this.getCenterLocation2();
		//alert(lefttop_loc10);
		//alert(m_loc10_middle + " " + m_loc10_after + "/" + g_loc10_middle + " " + g_loc10_after );

		var lefttop_area1       = lefttop_loc10.substr(0,1);
		var lefttop_area2       = lefttop_loc10.substr(1,1);
		var lefttop_no4_middle  = lefttop_loc10.substr(2,2);
		var lefttop_no4_after   = lefttop_loc10.substring(7,9);
		var lefttop_no10_middle = lefttop_loc10.substring(4,7);
		var lefttop_no10_after  = lefttop_loc10.substring(9,12);

		lefttop_no4_middle  = Number(lefttop_no4_middle);
		lefttop_no4_after   = Number(lefttop_no4_after);
		lefttop_no10_middle = Number(lefttop_no10_middle);
		lefttop_no10_after  = Number(lefttop_no10_after);

		for (i = 0; i < MakerArray.length; i++) {  //<label id="iterate.visible.tiles"/>
								
			var Makerinfo = MakerArray[i];  //2차원 배열값을 변수에 저장
			
			if (Makerinfo[0] != null && Makerinfo[1] != null && Makerinfo[2] != null && Makerinfo[3] != null){

				var Get_area1, Get_area2, Get_no4_middle, Get_no4_after, Get_no10_middle, Get_no10_after;

				//필요한 문자열 추출
				Get_area1       = Makerinfo[0].substr(0,1);
				Get_area2       = Makerinfo[0].substr(1,1);
				Get_no4_middle  = Makerinfo[0].substr(2,2);
				Get_no4_after   = Makerinfo[0].substring(7,9);
				Get_no10_middle = Makerinfo[0].substring(4,7);
				Get_no10_after  = Makerinfo[0].substring(9,12);

				//자료형변환 문자 -> 숫자
				Get_no4_middle  = Number(Get_no4_middle);
				Get_no4_after   = Number(Get_no4_after);
				Get_no10_middle = Number(Get_no10_middle);
				Get_no10_after  = Number(Get_no10_after);

				var m_areanum1;
				for (j=0; strRow.length; j++){
					if (Get_area1 == strRow[j]){
						m_areanum1 = j;
						break;
					} 			
				}

				var m_areanum2;
				for (k=0; strCol.length; k++){
					if (Get_area2 == strCol[k]){
						m_areanum2 = k;
						break;
					}
				}

				///////////////////////////////////////////////////////////////////////////////////////////
				//왼쪽 상단과 마커 간의 상대 거리를 계산하여 화면에 표시해줌
				var lefttop_x_value = lefttop_no4_middle*1000+lefttop_no10_middle;
				var lefttop_y_value = lefttop_no4_after*1000+lefttop_no10_after;

				var marker_x_value = Get_no4_middle*1000+Get_no10_middle;
				var marker_y_value = Get_no4_after*1000+Get_no10_after;

				//상대 거리를 구함
				var left_value = marker_x_value - lefttop_x_value;
				left_value     = Math.floor(left_value*(tileSize/1000));
				var top_value  = lefttop_y_value - marker_y_value;
				top_value      = Math.floor(top_value*(tileSize/1000));

				//left_value = 1000-left_value;
				//alert(lefttop_loc10+" "+left_value);

				//if (left_value > -1 && top_value > -1){

					var MakerName =  i + Makerinfo[0];  //마커명 생성 

					visibleTilesMap["MakerName"] = true;  //타일맵에 현재 보여지는 마커 추가  

					if (Makerinfo[5] != null && Makerinfo[6] != null && Makerinfo[7] != null){

						var Makerdiv = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크

						if (!Makerdiv){ 
							var dialog = document.createElement("div");
							dialog.style.position = "absolute";
							dialog.style.left     = left_value - (Makerinfo[2]/2) + "px";
							dialog.style.top      = top_value - (Makerinfo[3]/2) + "px";
							dialog.style.width    = Makerinfo[2] + "px";
							dialog.style.height   = Makerinfo[3] + "px";
							dialog.style.zIndex   = 3;
							dialog.setAttribute("id", MakerName);
							dialog.innerHTML = "<table width="+Makerinfo[2]+" height="+Makerinfo[3]+" border='0'  style='background-repeat:no-repeat;'><tr><td onclick='javascript:onclick_marker("+ i+ ");' onmouseover='addtooltip("+i+");' style='cursor:hand'><img src="+ Makerinfo[1]+" name='MakerName'></img></td></tr></table>";
							innerDiv2.appendChild(dialog);
						}else{
							Makerdiv.style.left = left_value - (Makerinfo[2]/2) + "px";
							Makerdiv.style.top  = top_value - (Makerinfo[3]/2) + "px";
						}

					}else{

						var img = document.getElementById(MakerName);       //현재마커명의 엘리먼트 체크 
						if (!img){       						
							img = document.createElement("img");  //<label id="create.img"/>		
							img.src = Makerinfo[1];
							img.style.position = "absolute";
							img.style.left = left_value - (Makerinfo[2]/2);
							img.style.top  = top_value - (Makerinfo[3]/2);
							img.style.zIndex = 3;
							img.setAttribute("width", Makerinfo[2]); 
							img.setAttribute("height", Makerinfo[3]);
							img.setAttribute("id", MakerName); 
							img.setAttribute("name", "MakerName");
							innerDiv2.appendChild(img);															
						}else{
							img.style.left = left_value - (Makerinfo[2]/2);
							img.style.top  = top_value - (Makerinfo[3]/2);
						}
					}
				//}
			}
		}
		return true;
	}
	// END:checkPMaker

	//위&경도 MGRS변환 필요인자 추출함수 
	this.LoctionSetup = function(p_width, p_height, p_phi, p_lam) {

		var outerDiv = document.getElementById(m_outer_div);

		viewportWidth  = document.getElementById(m_outer_div).offsetWidth;
	  viewportHeight = document.getElementById(m_outer_div).offsetHeight;

		var strMGRS = this.GP2TM(p_phi,p_lam);

		var Get_area1, Get_area2, Get_no4_middle, Get_no4_after, Get_no10_middle, Get_no10_after;

		//필요한 문자열 추출
		Get_area1       = strMGRS.substr(0,1);
		Get_area2       = strMGRS.substr(1,1);
		Get_no4_middle  = strMGRS.substr(2,2);
		Get_no4_after   = strMGRS.substring(7,9);
		Get_no10_middle = strMGRS.substring(4,7);
		Get_no10_after  = strMGRS.substring(9,12);

        //자료형변환 문자 -> 숫자
		Get_no4_middle  = Number(Get_no4_middle);
		Get_no4_after   = Number(Get_no4_after);
		Get_no10_middle = Number(Get_no10_middle);
		Get_no10_after  = Number(Get_no10_after);

		this.MapSetup(Get_area1,Get_area2,Get_no4_middle,Get_no4_after,Get_no10_middle,Get_no10_after);
	
		return true;
	}


	this.UrlSetup = function(u_width, u_height, u_startx, u_starty, u_zoomlev){

		var u_width, u_height, u_startx, u_starty, u_zoomlev;

		width_percent   = u_width;
		height_percent  = u_height;

		viewportWidth  = document.getElementById(m_outer_div).offsetWidth;
	  viewportHeight = document.getElementById(m_outer_div).offsetHeight;

		var strMGRS = this.GP2TM(u_startx,u_starty);
		//alert(strMGRS);

		var Get_area1, Get_area2, Get_no4_middle, Get_no4_after, Get_no10_middle, Get_no10_after;

		//필요한 문자열 추출
		Get_area1       = strMGRS.substr(0,1);
		Get_area2       = strMGRS.substr(1,1);
		Get_no4_middle  = strMGRS.substr(2,2);
		Get_no4_after   = strMGRS.substring(7,9);
		Get_no10_middle = strMGRS.substring(4,7);
		Get_no10_after  = strMGRS.substring(9,12);

        //자료형변환 문자 -> 숫자
		Get_no4_middle  = Number(Get_no4_middle);
		Get_no4_after   = Number(Get_no4_after);
		Get_no10_middle = Number(Get_no10_middle);
		Get_no10_after  = Number(Get_no10_after);

		if (u_zoomlev == 0){ tileSize = 200;
		}else if (u_zoomlev == 1){ tileSize = 400;
		}else if (u_zoomlev == 2){ tileSize = 600;
		}else if (u_zoomlev == 3){ tileSize = 800;
		}else if (u_zoomlev == 4){ tileSize = 1000;
		}else if (u_zoomlev == 5){ tileSize = 1200;
		}else if (u_zoomlev == 6){ tileSize = 1400;
		}else if (u_zoomlev == 7){ tileSize = 1600;
		}else if (u_zoomlev == 8){ tileSize = 1800;
		}else if (u_zoomlev == 9){ tileSize = 2000;
		}

		var innerDiv2 = document.getElementById(m_inner_div);
		var imgs = innerDiv2.getElementsByTagName("img");
		for (i = 0; i < imgs.length; i++) {
			var id   = imgs[i].getAttribute("id");
			var name = imgs[i].getAttribute("name");
			
				if (name != "MakerName"){
					//innerDiv2.removeChild(document.images[id]);
					this.purge(imgs[i]);
					innerDiv2.removeChild(imgs[i]);
					i--;  // compensate for live nodelist
				}	
		}

		this.MapSetup2(Get_area1,Get_area2,Get_no4_middle,Get_no4_after,Get_no10_middle,Get_no10_after);

		////////////////////////////////////////////////////
		//마커 좌표와의 거리만큼 이동시킨다

		var display_x = areanum1*100000+no4_middle*1000+no10_middle;
		var display_y = areanum2*100000+no4_After*1000+no10_After;

		var maker_x = m_loc_areanum1*100000+m_loc4_middle*1000+m_loc10_middle;
		var maker_y = m_loc_areanum2*100000+m_loc4_after*1000+m_loc10_after;

		var gap_x = 0;//(maker_x - display_x);
		var gap_y = 0;//maker_y - display_y;

		if (no10_middle > m_loc10_middle){
			gap_x = (no10_middle-m_loc10_middle) * -1;
		}else{
			gap_x = (m_loc10_middle-no10_middle);
		}
			
		///////////////////////////////////////////////////
		//이동후 좌표 계산
		{
			/////////////////////////////////////////////////////////////////
			//화면출력용 변수 처리

			no10_middle = no10_middle + gap_x;
			no10_After  = no10_After + gap_y;

			var	T_no10_middle = no10_middle + gap_x;  //임시저장 이동거리 x
			var T_no10_After  = no10_After + gap_y;   //임시저장 이동거리 y


			//변경된 Loc10체크(Loc4변경&Loc10변경)
			if (no10_middle > 999){
				no4_middle  = no4_middle - 1;
				no10_middle = no10_middle - 1000;
			}else if (no10_middle < 0){
				no4_middle = no4_middle + 1;
				no10_middle = 1000 + no10_middle;
			}

			if (no10_After > 999){
				no4_After = no4_After + 1;
				no10_After = no10_After - 1000;
			}else if (no10_After < 0){
				no4_After = no4_After - 1;
				no10_After = 1000 + no10_After;
			}
			
			//변경된 Loc4체크(Area변경&Loc4변경) 
			if (no4_middle > 99){
				areanum1 = areanum1 + 1;
				no4_middle = no4_middle - 100;
			}else if (no4_middle < 0){
				areanum1 = areanum1 - 1;			
				no4_middle = 100 + no4_middle;
			}
			
			if (no4_After > 99){
				areanum2 = areanum2 + 1;
				no4_After = no4_After - 100;	
			}else if (no4_After < 0){
				areanum2 = areanum2 - 1;
				no4_After = 100 + no4_After;		
			}

			//alert(no4_middle+" "+no10_middle+" "+no4_After+" "+no10_After);

			///////////////////////////////////////////////////////////////
			//좌표계산용 변수 처리 ★★★
			g_loc_areanum1	= areanum1;
			g_loc_areanum2	= areanum2;
			g_loc4_middle	= no4_middle;
			g_loc4_after	= no4_After;

			if (T_no10_middle >= 2000){
				g_loc10_middle = g_loc10_middle - 1000*Math.floor((T_no10_middle-1000)/1000);
				g_loc4_middle  = g_loc4_middle -Math.floor((T_no10_middle-1000)/1000);
			}

			if (T_no10_After >= 2000){
				g_loc10_after = g_loc10_after - 1000*Math.floor((T_no10_After-1000)/1000);
				g_loc4_after  = g_loc4_after - Math.floor((T_no10_After-1000)/1000);
			}

			if (tileSize == 200){
				g_loc10_middle	=  no10_middle - 440;
				g_loc10_after	= (no10_After + 100) + 600;
			}else if (tileSize == 400){
				g_loc10_middle	=  no10_middle - 440;
				g_loc10_after	= (no10_After + 100) + 600;
			}else if (tileSize == 600){
				g_loc10_middle	=  no10_middle - 440;
				g_loc10_after	= (no10_After + 100) + 600;
			}else if (tileSize == 800){
				g_loc10_middle	=  no10_middle - 440;
				g_loc10_after	= (no10_After + 100) + 600;
			}else if (tileSize == 1000){
				g_loc10_middle	=  no10_middle + 710;
				g_loc10_after	= (no10_After + 100) + 40;
			}else if (tileSize == 1200){
				g_loc10_middle	=  no10_middle + 757;
				g_loc10_after	= (no10_After + 100) + 14;
			}else if (tileSize == 1400){
				g_loc10_middle	=  no10_middle + 795;
				g_loc10_after	= (no10_After + 100) - 1;
			}else if (tileSize == 1600){
				g_loc10_middle	=  no10_middle + 820;
				g_loc10_after	= (no10_After + 100) - 13;
			}else if (tileSize == 1800){
				g_loc10_middle	=  no10_middle + 840;
				g_loc10_after	= (no10_After + 100) - 22;
			}else if (tileSize == 2000){
				g_loc10_middle	=  no10_middle + 855;
				g_loc10_after	= (no10_After + 100) - 27;
			}

			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (g_loc10_middle > 1000){		
				g_loc10_middle = g_loc10_middle - 1000;
				g_loc4_middle  = g_loc4_middle + 1;
			}else if (g_loc10_middle < 0){
				g_loc10_middle = 1000 + g_loc10_middle;
				g_loc4_middle  = g_loc4_middle - 1;
			}

			if (g_loc10_after > 1000){
				g_loc10_after = g_loc10_after-1000;
				g_loc4_after  = g_loc4_after + 1;
			}else if (g_loc10_after < 0){
				g_loc10_after = 1000 + g_loc10_after;
				g_loc4_after  = g_loc4_after - 1;
			}

			if (g_loc4_middle > 99){
				g_loc_areanum1 = g_loc_areanum1 + 1;
				g_loc4_middle = g_loc4_middle - 100;
			}else if (g_loc4_middle < 0){
				g_loc_areanum1 = g_loc_areanum1 - 1;			
				g_loc4_middle = 100 + g_loc4_middle;
			}

			if (g_loc4_after > 99){
				g_loc_areanum2 = g_loc_areanum2 + 1;
				g_loc4_after = g_loc4_after - 100;	
			}else if (g_loc4_after < 0){
				g_loc_areanum2 = g_loc_areanum2 - 1;
				g_loc4_after = 100 + g_loc4_after;		
			}
			
			//var teststr =  String(g_loc4_middle) + String(g_loc10_middle)
			//alert(teststr);

			//var teststr =  String(g_loc4_after) + String(g_loc10_after)
			//alert(teststr);

			//좌표계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//마커계산용 변수 처리 ★★★
			m_loc_areanum1	= areanum1;
			m_loc_areanum2	= areanum2;
			m_loc4_middle	= no4_middle;
			m_loc4_after	= no4_After;

			if (T_no10_middle >= 2000){
				m_loc10_middle = m_loc10_middle - 1000*Math.floor((T_no10_middle-1000)/1000);
				m_loc4_middle  = m_loc4_middle -Math.floor((T_no10_middle-1000)/1000);
			}

			if (T_no10_After >= 2000){
				m_loc10_after = m_loc10_after - 1000*Math.floor((T_no10_After-1000)/1000);
				m_loc4_after  = m_loc4_after - Math.floor((T_no10_After-1000)/1000);
			}

			if (tileSize == 200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100) - 150;
			}else if (tileSize == 400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100) - 150;
			}else if (tileSize == 1000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1200){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1400){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1600){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-135;
			}else if (tileSize == 1800){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-140;
			}else if (tileSize == 2000){
				m_loc10_middle	=  (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-145;
			}

			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (m_loc10_middle > 1000){		
				m_loc10_middle = m_loc10_middle - 1000;
				m_loc4_middle  = m_loc4_middle + 1;
			}else if (m_loc10_middle < 0){
				m_loc10_middle = 1000 + m_loc10_middle;
				m_loc4_middle  = m_loc4_middle - 1;
			}

			if (m_loc10_after > 1000){
				m_loc10_after = m_loc10_after-1000;
				m_loc4_after  = m_loc4_after + 1;
			}else if (m_loc10_after < 0){
				m_loc10_after = 1000+m_loc10_after;
				m_loc4_after  = m_loc4_after - 1;
			}

			if (m_loc4_middle > 99){
				m_loc_areanum1 = m_loc_areanum1 + 1;
				m_loc4_middle = m_loc4_middle - 100;
			}else if (m_loc4_middle < 0){
				m_loc_areanum1 = m_loc_areanum1 - 1;			
				m_loc4_middle = 100 + m_loc4_middle;
			}

			if (m_loc4_after > 99){
				m_loc_areanum2 = m_loc_areanum2 + 1;
				m_loc4_after = m_loc4_after - 100;	
			}else if (m_loc4_after < 0){
				m_loc_areanum2 = m_loc_areanum2 - 1;
				m_loc4_after = 100 + m_loc4_after;		
			}
			this.checkTiles();
			this.checkPMaker();
			this.checkdistance();

		}	
	}

	this.MapSetup = function(p_area1, p_area2, p_no4_middle, p_no4_after, p_no10_middle, p_no10_after){

		area1			= p_area1;
		area2			= p_area2;
		no4_middle		= p_no4_middle;
		no4_After		= p_no4_after;
		no10_middle		= p_no10_middle;
		no10_After		= p_no10_after;

		for (j=0; strRow.length; j++){
			if (area1 == strRow[j]){
				areanum1 = j;
				break;
			} 			
		}

		for (k=0; strCol.length; k++){
			if (area2 == strCol[k]){
				areanum2 = k;
				break;
			}
		}

		//alert(tileSize);
		///////////////////////////////////////////////////////////////
		//좌표계산용 변수 처리 ★★★
		g_loc_areanum1	= areanum1;
		g_loc_areanum2	= areanum2;
		g_loc4_middle	= no4_middle;
		g_loc4_after	= no4_After;

		if (tileSize == 800){
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100) - 150;
		}else if (tileSize == 1000){
			//g_loc10_middle	= (1000 - no10_middle);// + 710;
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1200){
			//g_loc10_middle	= (1000 - no10_middle);//+ 757;
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1400){
			//g_loc10_middle	= (1000 - no10_middle);// + 795;
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1600){
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-135;
		}else if (tileSize == 1800){
			//g_loc10_middle	= (1000 - no10_middle);// + 840;
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-140;
		}else if (tileSize == 2000){
			//g_loc10_middle	= (1000 - no10_middle);// + 855;
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-145;
		}

		/*g_loc10_middle = 1000 - no10_middle;
		g_loc10_after	 = no10_After + 100;*/

		if (g_loc10_middle > 1000){		
			g_loc10_middle = g_loc10_middle - 1000;
			g_loc4_middle  = g_loc4_middle + 1;
		}else if (g_loc10_middle < 0){
			g_loc10_middle = 1000 + g_loc10_middle;
			g_loc4_middle  = g_loc4_middle - 1;
		}

		if (g_loc10_after > 1000){
			g_loc10_after = g_loc10_after-1000;
			g_loc4_after = g_loc4_after+1;
		}else if  (g_loc10_after < 0){
			g_loc10_after = 1000 + g_loc10_after;
			g_loc4_after  = g_loc4_after - 1;
		}

		if (g_loc4_middle > 99){
			g_loc_areanum1 = g_loc_areanum1 + 1;
			g_loc4_middle = g_loc4_middle - 100;
		}else if (g_loc4_middle < 0){
			g_loc_areanum1 = g_loc_areanum1 - 1;			
			g_loc4_middle = 100 + g_loc4_middle;
		}

		if (g_loc4_after > 99){
			g_loc_areanum2 = g_loc_areanum2 + 1;
			g_loc4_after = g_loc4_after - 100;	
		}else if (g_loc4_after < 0){
			g_loc_areanum2 = g_loc_areanum2 - 1;
			g_loc4_after = 100 + g_loc4_after;		
		}

		//좌표계산용 변수 처리 ★★★
		///////////////////////////////////////////////////////////////

		///////////////////////////////////////////////////////////////
		//마커계산용 변수 처리 ★★★
		m_loc_areanum1	= areanum1;
		m_loc_areanum2	= areanum2;
		m_loc4_middle	= no4_middle;
		m_loc4_after	= no4_After;

		if (tileSize == 800){
			m_loc10_middle	= (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100) - 150;
		}else if (tileSize == 1000){
			//g_loc10_middle	= (1000 - no10_middle);// + 710;
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1200){
			//g_loc10_middle	= (1000 - no10_middle);//+ 757;
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1400){
			//g_loc10_middle	= (1000 - no10_middle);// + 795;
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1600){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-135;

		}else if (tileSize == 1800){
			//g_loc10_middle	= (1000 - no10_middle);// + 840;
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-140;
		}else if (tileSize == 2000){
			//g_loc10_middle	= (1000 - no10_middle);// + 855;
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-145;
		}

		//g_loc10_middle = 1000 - no10_middle;
		//g_loc10_after	 = no10_After + 100;

		if (m_loc10_middle > 1000){		
			m_loc10_middle = m_loc10_middle - 1000;
			m_loc4_middle  = m_loc4_middle + 1;
		}else if (m_loc10_middle < 0){
			m_loc10_middle = 1000 + m_loc10_middle;
			m_loc4_middle  = m_loc4_middle - 1;
		}

		if (m_loc10_after > 1000){
			m_loc10_after = m_loc10_after-1000;
			m_loc4_after  = m_loc4_after + 1;
		}else if (m_loc10_after < 0){
			m_loc10_after = 1000+m_loc10_after;
			m_loc4_after  = m_loc4_after - 1;
		}

		if (m_loc4_middle > 99){
			m_loc_areanum1 = m_loc_areanum1 + 1;
			m_loc4_middle  = m_loc4_middle - 100;
		}else if (m_loc4_middle < 0){
			m_loc_areanum1 = m_loc_areanum1 - 1;			
			m_loc4_middle  = 100 + m_loc4_middle;
		}

		if (m_loc4_after > 99){
			m_loc_areanum2 = m_loc_areanum2 + 1;
			m_loc4_after   = m_loc4_after - 100;	
		}else if (m_loc4_after < 0){
			m_loc_areanum2 = m_loc_areanum2 - 1;
			m_loc4_after   = 100 + m_loc4_after;		
		}

		//마커계산용 변수 처리 ★★★
		///////////////////////////////////////////////////////////////

		this.setouterDivSize(viewportWidth,viewportHeight);

		this.checkTiles();
		this.checkPMaker();
		this.checkdistance();
	}


	this.MapSetup2 = function(p_area1, p_area2, p_no4_middle, p_no4_after, p_no10_middle, p_no10_after) {

		area1			= p_area1;
		area2			= p_area2;
		no4_middle		= p_no4_middle;
		no4_After		= p_no4_after;
		no10_middle		= p_no10_middle;
		no10_After		= p_no10_after;

		for (j=0; strRow.length; j++){
			if (area1 == strRow[j]){
				areanum1 = j;
				break;
			} 			
		}

		for (k=0; strCol.length; k++){
			if (area2 == strCol[k]){
				areanum2 = k;
				break;
			}
		}

		//alert(tileSize);
		///////////////////////////////////////////////////////////////
		//좌표계산용 변수 처리 ★★★
		g_loc_areanum1	= areanum1;
		g_loc_areanum2	= areanum2;
		g_loc4_middle	= no4_middle;
		g_loc4_after	= no4_After;

		if (tileSize == 200){
			g_loc10_middle	= (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100) - 150;
		}else if (tileSize == 400){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 600){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 800){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1000){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1200){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1400){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1600){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-135;
		}else if (tileSize == 1800){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-140;
		}else if (tileSize == 2000){
			g_loc10_middle	=  (1000 - no10_middle) + 1000;
			g_loc10_after	= (no10_After + 100)-145;
		}

		if (g_loc10_middle > 1000){		
			g_loc10_middle = g_loc10_middle - 1000;
			g_loc4_middle  = g_loc4_middle + 1;
		}else if (g_loc10_middle < 0){
			g_loc10_middle = 1000 + g_loc10_middle;
			g_loc4_middle  = g_loc4_middle - 1;
		}

		if (g_loc10_after > 1000){
			g_loc10_after = g_loc10_after-1000;
			g_loc4_after = g_loc4_after+1;
		}else if (g_loc10_after < 0){
			g_loc10_after = 1000 + g_loc10_after;
			g_loc4_after  = g_loc4_after - 1;
		}

		if (g_loc4_middle > 99){
			g_loc_areanum1 = g_loc_areanum1 + 1;
			g_loc4_middle = g_loc4_middle - 100;
		}else if (g_loc4_middle < 0){
			g_loc_areanum1 = g_loc_areanum1 - 1;			
			g_loc4_middle = 100 + g_loc4_middle;
		}

		if (g_loc4_after > 99){
			g_loc_areanum2 = g_loc_areanum2 + 1;
			g_loc4_after = g_loc4_after - 100;	
		}else if (g_loc4_after < 0){
			g_loc_areanum2 = g_loc_areanum2 - 1;
			g_loc4_after = 100 + g_loc4_after;		
		}

		
		//좌표계산용 변수 처리 ★★★
		///////////////////////////////////////////////////////////////

		///////////////////////////////////////////////////////////////
		//마커계산용 변수 처리 ★★★
		m_loc_areanum1	= areanum1;
		m_loc_areanum2	= areanum2;
		m_loc4_middle	= no4_middle;
		m_loc4_after	= no4_After;

		if (tileSize == 200){
			m_loc10_middle	= (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100) - 150;
		}else if (tileSize == 400){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 600){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 800){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1000){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1200){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1400){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-150;
		}else if (tileSize == 1600){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-135;
		}else if (tileSize == 1800){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-140;
		}else if (tileSize == 2000){
			m_loc10_middle	=  (1000 - no10_middle) + 1000;
			m_loc10_after	= (no10_After + 100)-145;
		}

		//g_loc10_middle = 1000 - no10_middle;
		//g_loc10_after	 = no10_After + 100;

		if (m_loc10_middle > 1000){		
			m_loc10_middle = m_loc10_middle - 1000;
			m_loc4_middle  = m_loc4_middle + 1;
		}else if (m_loc10_middle < 0){
			m_loc10_middle = 1000 + m_loc10_middle;
			m_loc4_middle  = m_loc4_middle - 1;
		}

		if (m_loc10_after > 1000){
			m_loc10_after = m_loc10_after-1000;
			m_loc4_after  = m_loc4_after + 1;
		}else if (m_loc10_after < 0){
			m_loc10_after = 1000+m_loc10_after;
			m_loc4_after  = m_loc4_after - 1;
		}

		if (m_loc4_middle > 99){
			m_loc_areanum1 = m_loc_areanum1 + 1;
			m_loc4_middle = m_loc4_middle - 100;
		}else if (m_loc4_middle < 0){
			m_loc_areanum1 = m_loc_areanum1 - 1;			
			m_loc4_middle = 100 + m_loc4_middle;
		}

		if (m_loc4_after > 99){
			m_loc_areanum2 = m_loc_areanum2 + 1;
			m_loc4_after = m_loc4_after - 100;	
		}else if (m_loc4_after < 0){
			m_loc_areanum2 = m_loc_areanum2 - 1;
			m_loc4_after = 100 + m_loc4_after;		
		}
		

		//마커계산용 변수 처리 ★★★
		///////////////////////////////////////////////////////////////

		this.setouterDivSize(viewportWidth,viewportHeight);

		//this.checkTiles();
		//this.checkPMaker();

	}


	//URL복사 함수 인자(복사될 URL) 리턴(복사한 URL)
	this.UrlCopy = function(url_string) {

		var x = (areanum1 * 100000) + (no4_middle * 1000) + no10_middle ;      //시작점을 m단위로 나타냄
		var y = (areanum2 * 100000) + (no4_After * 1000) + no10_After;  
		var z;
		var url_string;

		if (tileSize == 200){ z = 0;
		}else if (tileSize == 400){	z = 1;
		}else if (tileSize == 600){	z = 2;
		}else if (tileSize == 800){	z = 3;
		}else if (tileSize == 1000){ z = 4;
		}else if (tileSize == 1200){ z = 5;
		}else if (tileSize == 1400){ z = 6;
		}else if (tileSize == 1600){ z = 7;
		}else if (tileSize == 1800){ z = 8;
		}else if (tileSize == 2000){ z = 9;
		}

		var url = url_string+"?x=" + x +"&y=" + y +"&z=" + z ;

		return url;
		
	}
	
	this.fnSPHTMD = function(ap, bp, cp, dp, ep, sphi) {

		return (ap * sphi - bp * Math.sin(2 * sphi) + cp * Math.sin(4 * sphi) - dp * Math.sin(6 * sphi) + ep * Math.sin(8 * sphi));

	}

	this.fnSPHSN = function(a, es, sphi) {

		return (a / Math.sqrt(1 - es * Math.pow(Math.sin(sphi), 2)));

	}

	this.GP2TM = function(phi, lam) {
		var phi, lam;

	   var sphi, slam, sphi0, slam0, f;
	   var fe, degrad, recf, es, ebs;
	   var b, c, tn;
	   var ap, bp, cp, dp, ep;
       var dLam, s, t, eta, sn, tmd, tmd1, nfn, xn1;
       var t1, t2, t3, t4, t5, t6, t7, t8, t9;

		//경위도 -> UTM 으로
		//투영원점 결정
		lam0 = Math.floor(lam / 6) * 6 + 3;

		//남반구이면 x 값에 10 000 000 을 더함
		if (phi < 0) {
			x0 = 10000000;
		}

	    fe = y00;      //원점의 x좌표
	    f = f1;        //편평도

	    degrad = Math.atan(1) / 45;

	    sphi = phi * degrad;      //위도를 라디안으로
        slam = lam * degrad;
        sphi0 = phi0 * degrad;    //원점의 위도를 라디안으로
        slam0 = lam0 * degrad;

	    //** SEMI MAJOR AXIS - B **
		recf = 1 / f;      //편평도 299.1528...
		b = a * (recf - 1) / recf;

		//** ECCENTRICITY SQUARED **
		es = (Math.pow(a, 2) - Math.pow(b, 2)) / Math.pow(a, 2);

		//** SECOND ECCENTRICITY SQUARED **
		ebs = (Math.pow(a, 2) - Math.pow(b, 2)) / Math.pow(b, 2);

		//** TRUE MERIDIONAL DISTANCE CONSTANTS **
		tn = (a - b) / (a + b);
		ap = a * (1 - tn + 5 * (Math.pow(tn, 2) - Math.pow(tn, 3)) / 4 + 81 * (Math.pow(tn, 4) - Math.pow(tn, 5)) / 64);
		bp = 3 * a * (tn - Math.pow(tn, 2) + 7 * (Math.pow(tn, 3) - Math.pow(tn, 4)) / 8 + 55 * Math.pow(tn, 5) / 64) / 2;
		cp = 15 * a * (Math.pow(tn, 2) - Math.pow(tn, 3) + 3 * (Math.pow(tn, 4) - Math.pow(tn, 5)) / 4) / 16;
		dp = 35 * a * (Math.pow(tn, 3) - Math.pow(tn, 4) + 11 * Math.pow(tn, 5) / 16) / 48;
		ep = 315 * a * (Math.pow(tn, 4) - Math.pow(tn, 5)) / 512;

		//***** ZONE - CENTRAL MERIDIAN *****

		//*** DIFFERENCE BETWEEN LONGITUDE AND CENTRAL MERIDIAN ***
		dLam = slam - slam0;     //원점에서 떨어진 경도 rad	

		//*** 원점에 대한 x 좌표 nfn#을 먼저 구함    99.12
		//** TRUE MERIDIONAL DISTANCE ** 
		tmd1 = this.fnSPHTMD(ap, bp, cp, dp, ep, sphi0);

		nfn = tmd1 * ok;

		//****  구하는 점의 x 좌표를 구함
		//*** OTHER COMMON TERMS ***
		s = Math.sin(sphi);
		c = Math.cos(sphi);
		t = s / c;
		eta = ebs * Math.pow(c, 2);

		//** RADIUS OF CURVATURE IN PRIME VERTICAL **
		sn = this.fnSPHSN(a, es, sphi);

		//** TRUE MERIDIONAL DISTANCE **
		tmd = this.fnSPHTMD(ap, bp, cp, dp, ep, sphi);

		//***** NORTHING *****

		t1 = tmd * ok;
		t2 = sn * s * c * ok / 2;
		t3 = sn * s * Math.pow(c, 3) * ok * (5 - Math.pow(t, 2) + 9 * eta + 4 * Math.pow(eta, 2)) / 24;
		t4 = sn * s * Math.pow(c, 5) * ok * (61 - 58 * Math.pow(t, 2) + Math.pow(t, 4) + 270 * eta - 330 * Math.pow(t, 2) * eta + 445 * Math.pow(eta, 2) + 324 * Math.pow(eta, 3) - 680 * Math.pow(t, 2) * Math.pow(eta, 2) + 88 * Math.pow(eta, 4) - 600 * Math.pow(t, 2) * Math.pow(eta, 3) - 192 * Math.pow(t, 2) * Math.pow(eta, 4)) / 720;
		t5 = sn * s * Math.pow(c, 7) * ok * (1385 - 3111 * Math.pow(t, 2) + 543 * Math.pow(t, 4) - Math.pow(t, 6)) / 40320;

		xn1 = t1 + Math.pow(dLam, 2) * t2 + Math.pow(dLam, 4) * t3 + Math.pow(dLam, 6) * t4 + Math.pow(dLam, 8) * t5;
		xn  = xn1 - nfn + x0; //원점과의 차이를 구함   99.12

		//***** EASTING *****
		t6 = sn * c * ok;
		t7 = sn * Math.pow(c, 3) * ok * (1 - Math.pow(t, 2) + eta) / 6;
		t8 = sn * Math.pow(c, 5) * ok * (5 - 18 * Math.pow(t, 2) + Math.pow(t, 4) + 14 * eta - 58 * Math.pow(t, 2) * eta + 13 * Math.pow(eta, 2) + 4 * Math.pow(eta, 3) - 64 * Math.pow(t, 2) * Math.pow(eta, 2) - 24 * Math.pow(t, 2) * Math.pow(eta, 3)) / 120;
		t9 = sn * Math.pow(c, 7) * ok * (61 - 479 * Math.pow(t, 2) + 179 * Math.pow(t, 4) - Math.pow(t, 6)) / 5040;
    
		ye = fe + (dLam * t6) + (Math.pow(dLam, 3) * t7) + (Math.pow(dLam, 5) * t8) + (Math.pow(dLam, 7) * t9);

		return (this.MGRSCRVT(ye,phi,lam));
	}

	//MGRS변환 함수 
	this.MGRSCRVT = function(ye,phi,lam){
		var phi,lam,ye;
		
		var zoneN, zoneD, row, col;
		var mgrsX, mgrsY;

		//zone number
		zoneN = Math.floor((lam + 180) / 6) + 1;  //zoneN = (lam + 180) / 6 + 1;

		//zone designater
		zoneD = Math.floor((phi + 80) / 8);

		//MGRS grid 첫번째 번호 경도와 y 값에 의하여 결정
		var lam1 = Math.floor((lam + 180) % 18);  //18 도씩 나누고 나머지 값 18도 마다 바뀌니까
		var lam2 = Math.floor((lam1 / 6));        //18 도를 다시 6도씩 나누었을때 어디에 몇번째 칸인지

        row   = Math.floor(ye / 100000);          //100 km 이상단위만 잘라내어 6 도 내에서 몇번째 칸인지
        mgrsY = Math.floor(ye - row * 100000);    //100 km 이내의 단위
        row   = lam2 * 8 + row;                   //18 도 칸 처음부터 따져서 몇번째 칸인지
   
        //MGRS grid 두번째 번호 위도와 x 값에 의하여 결정
        col   = Math.floor(xn / 100000);          //100 km 씩 나누어서 몇번째 칸인가
        mgrsX = Math.floor(xn - col * 100000);    //100 km 이내의 단위

        col = col % 20;                           //반복되는 20 칸 내에서 몇번째 칸인가

		if (zoneN % 2 == 0){
			col = col + 5;                        //짝수 이면 5 칸 밀기
		}

		//alert(row+" "+col);

		/////////////////////////////////////////////////
		//좌표 변환 오류로 인하여 일부 지역 하드 코딩했음
		if (row == 22) { row = 2;}
		if (col == 22) { col = 2;}
		if (col == 21) { col = 1;}
		if (col == 24)	{ col = col%20;	}
		else if (col == 23)	{ col = col%20; }
		else if (col == 17) { col = 2; }
		//좌표 변환 오류로 인하여 일부 지역 하드 코딩했음
		/////////////////////////////////////////////////

		strMGRS = strRow[row - 1] + strCol[col];

		//alert(strMGRS);

        var strX, strY;

		if (mgrsX < 10){
			strX = "0000" + mgrsX ;
		}else if (mgrsX < 100){
			strX = "000" + mgrsX;
		}else if (mgrsX < 1000){
			strX = "00" + mgrsX;
		}else if (mgrsX < 10000){
			strX = "0" + mgrsX;
		}else{
			strX = mgrsX;
		}

		if (mgrsY < 10){
			strY = "0000" + mgrsY;
		}else if (mgrsY < 100){
			strY = "000" + mgrsY;
		}else if (mgrsY < 1000){
			strY = "00" + mgrsY;
		}else if (mgrsY < 10000){
			strY = "0" + mgrsY;
		}else{
			strY = mgrsY;
		}

		strMGRS = strMGRS + strY + strX;

		//alert(strMGRS);

		return strMGRS;
	}

	//지오피스 링크
	this.estate = function() {	

		Geopis = window.open("http://geopis.co.kr","estate_info");	

		return;
	}

	//프린트 모듈연결함수 
	this.print = function(Get_type) {

		//alert(Get_type);
				
		//숫자 계산이기때문에 Loc4 10자리미만 문자처리 
		var row_string = "";
		if (no4_middle < 10){
			row_string = "0" + no4_middle;
		}else{
			row_string = no4_middle;
		}

		var col_string = "";
		if (no4_After < 10){
			col_string = "0" + no4_After;
		}else{
			col_string = no4_After;
		}

		 var Get_loc4  = location_low + location_col + row_string + col_string;
		 var Get_loc10 = location_low + location_col + row_string + no10_middle + col_string + no10_After;

		 var Get_tileSize;
		 var type = Get_type;

		 //alert(Get_type);

		 if (tileSize == 200){ Get_tileSize = 9;
		 }else if (tileSize == 400){ Get_tileSize = 7;
		 }else if (tileSize == 600){ Get_tileSize = 5;
		 }else if (tileSize == 800){ Get_tileSize = 3;
		 }else if (tileSize == 1000){ Get_tileSize = 1;
		 }else if (tileSize == 1200){ Get_tileSize = 1;
		 }else if (tileSize == 1400){ Get_tileSize = 1;
		 }else if (tileSize == 1600){ Get_tileSize = 1;
		 }else if (tileSize == 1800){ Get_tileSize = 1;
		 }else if (tileSize == 2000){ Get_tileSize = 1;
		 }

		 window.open('http://www.geopis.co.kr/paran/print_module/print_module.asp?Get_Loc4='+ Get_loc4 +'&Get_Loc10='+ Get_loc10 +'&Get_tileSize='+ Get_tileSize +'&Get_type=' + type,'print_info','toolbar=0, status=0, scrollbars=no, location=0, menubar=0, width=700, height=750,top=150,left=300');

	}

	this.WheelZoomin = function(delta) {
		var delta;
		 if (delta >= 120)
			this.Zoomin();
		
		 else if (delta <= -120)
			this.Zoomout();   	
	}

	// START:Zoom_Change 함수
	this.Zoom_Change = function(zoomlev) {

		var zoomlev = zoomlev;
		
		if (zoomlev == 0){tileSize = 200;
		}else if (zoomlev == 1){ tileSize = 400;
		}else if (zoomlev == 2){ tileSize = 600;
		}else if (zoomlev == 3){ tileSize = 800;
		}else if (zoomlev == 4){ tileSize = 1000;
		}else if (zoomlev == 5){ tileSize = 1200;
		}else if (zoomlev == 6){ tileSize = 1400;
		}else if (zoomlev == 7){ tileSize = 1600;
		}else if (zoomlev == 8){ tileSize = 1800;
		}else if (zoomlev == 9){ tileSize = 2000;
		}

		this.RemoveTooltip(); //툴팁삭제

		var innerDiv2 = document.getElementById(m_inner_div);
			var imgs = innerDiv2.getElementsByTagName("img");
			for (i = 0; i < imgs.length; i++) {
				var id   = imgs[i].getAttribute("id");
				var name = imgs[i].getAttribute("name");				
					if (name != "MakerName" && name != "icon"){
						//innerDiv2.removeChild(document.images[id]);
						this.purge(imgs[i]);
						innerDiv2.removeChild(imgs[i]);
						i--;  // compensate for live nodelist
					}	
			}
	
		this.checkTiles();
		this.checkPMaker();
		this.checkdistance();

	}
	// END:Zoom_Change 함수

	// START:Zoomin 함수 
	this.Zoomin = function() {

		clickcount = 0;

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;
		
		if (tileSize == 2000){	
		}else{

			/*if (tileSize == 200){
				tileSize = tileSize + 800;
			}else{			
				tileSize = tileSize + 200;
			}*/

			this.RemoveTooltip(); //툴팁삭제

			tileSize = tileSize + 200;

			var innerDiv2 = document.getElementById(m_inner_div);
			var imgs = innerDiv2.getElementsByTagName("img");
			for (i = 0; i < imgs.length; i++) {
				var id   = imgs[i].getAttribute("id");
				var name = imgs[i].getAttribute("name");
				
					if (name != "MakerName" && name != "icon"){
						//innerDiv2.removeChild(document.images[id]);
						this.purge(imgs[i]);
						innerDiv2.removeChild(imgs[i]);
						i--;  // compensate for live nodelist
					}			
			}	
			
			//거리&면적재기 일때 함수호출
			this.ReDraw();
			this.ReDraw2();
		}



		this.checkTiles();
		this.checkPMaker();
		this.checkdistance();
	}
	// END:Zoomin 함수 
	
	// START:Zoomout 함수
	this.Zoomout = function() {

		clickcount = 0;

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;
		
		if (tileSize == 200){
		}else{
			/*if (tileSize == 1000){
				tileSize = tileSize - 800;
			}else{				
				tileSize = tileSize - 200;
			}*/

			this.RemoveTooltip(); //툴팁삭제

			tileSize = tileSize - 200;

			var innerDiv2 = document.getElementById(m_inner_div);
			var imgs = innerDiv2.getElementsByTagName("img");
			for (i = 0; i < imgs.length; i++) {
				var id   = imgs[i].getAttribute("id");
				var name = imgs[i].getAttribute("name");
					if (name != "MakerName" && name != "icon"){
						//innerDiv2.removeChild(document.images[id]);
						this.purge(imgs[i]);
						innerDiv2.removeChild(imgs[i]);
						i--;  // compensate for live nodelist
					}			
			}

			//거리&면적재기 일때 함수호출
			this.ReDraw();
			this.ReDraw2();
		}

		this.checkTiles();
		this.checkPMaker();
		this.checkdistance();
	}
	// END:Zoomout 함수
	
	//마우스 드래그 시작함수
	this.startMove = function(event){	
		
		if (!event) event = window.event; //익스플로러용 코드
		
		dragStartLeft = event.clientX;  //마우스 버튼이 눌린지점의 x좌표
		dragStartTop  = event.clientY;  //마우스 버튼이 눌린지점의 y좌표

		var innerDiv2 = document.getElementById(m_inner_div);
		innerDiv2.style.cursor = "move";  //마우스 커서를 이동모양으로 바꾼다.
		

		//top  = stripPx(innerDiv2.style.top);  내부div 시작점 변수화
		//left = stripPx(innerDiv2.style.left);

		dragging = true;
	
		var tooltipdiv = document.getElementById("tooltip")
		if (GMapMode == "Move"){
			if (!tooltipdiv){
				this.processMove(event);
			}
		}else if(GMapMode == "line" || GMapMode == "area"){
			if(clickcount == 0){
				this.processMove(event);
			}
		}
		RemovePMakerkey('1'); // 검색결과에 표시된 빨간색 네모박스 지우기.
		return false;
	}

	//마우스 드래그 이동함수	
	this.processMove = function(event) {

		if (!event) event = window.event; //익스플로러용 코드
	
		if (dragging){
			

			

			var move_x = (event.clientX - dragStartLeft);  
			//left 왼쪽/오른쪽 지금마우스지점(x좌표)에서 마우스클릭했던 지점 만큼 빼준다.(움직인거리)
			var move_y = (event.clientY - dragStartTop);  
			//top  위쪽/아래쪽 지금마우스지점(y좌표)에서 마우스클릭했던 지점 만큼 빼준다.(움직인거리)

			//////////////////////////////////////////////////////////////////

			var move_loc10x;
			var move_loc10y;
			var real_move_x;
			var real_move_y;

			move_loc10x = move_x;
			move_loc10y = move_y;

			if (tileSize == 2000){
				real_move_x = Math.floor((move_loc10x * 1000)/tileSize*2);
				real_move_y = Math.floor((move_loc10y * 1000)/tileSize*2);
			}else{
				real_move_x = Math.floor((move_loc10x * 1000)/tileSize);
				real_move_y = Math.floor((move_loc10y * 1000)/tileSize);
			}

			/////////////////////////////////////////////////////////////////
			//화면출력용 변수 처리

			no10_middle = no10_middle + real_move_x;
			no10_After  = no10_After + real_move_y;

			var	T_no10_middle = no10_middle + real_move_x;  //임시저장 이동거리 x
			var T_no10_After  = no10_After + real_move_y;   //임시저장 이동거리 y


			//변경된 Loc10체크(Loc4변경&Loc10변경)
			if (no10_middle > 1000){
				no4_middle  = no4_middle - 1;
				no10_middle = no10_middle - 1000;
			}else if (no10_middle < 0){
				no4_middle = no4_middle + 1;
				no10_middle = 1000 + no10_middle;
			}

			if (no10_After > 1000){
				no4_After = no4_After + 1;
				no10_After = no10_After - 1000;
			}else if (no10_After < 0){
				no4_After = no4_After - 1;
				no10_After = 1000 + no10_After;
			}
			
			//변경된 Loc4체크(Area변경&Loc4변경) 
			if (no4_middle > 99){
				areanum1 = areanum1 + 1;
				no4_middle = no4_middle - 100;
			}else if (no4_middle < 0){
				areanum1   = areanum1 - 1;			
				no4_middle = 100 + no4_middle;
			}
			
			if (no4_After > 99){
				areanum2 = areanum2 + 1;
				no4_After = no4_After - 100;	
			}else if (no4_After < 0){
				areanum2 = areanum2 - 1;
				no4_After = 100 + no4_After;		
			}

			//화면출력용 변수 
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//좌표계산용 변수 처리 ★★★
			g_loc_areanum1	= areanum1;
			g_loc_areanum2	= areanum2;
			g_loc4_middle	= no4_middle;
			g_loc4_after	= no4_After;

			if (T_no10_middle >= 2000){
				g_loc10_middle = g_loc10_middle - 1000 * Math.floor((T_no10_middle-1000)/1000);
				g_loc4_middle  = g_loc4_middle - Math.floor((T_no10_middle-1000)/1000);
			}

			if (T_no10_After >= 2000){
				g_loc10_after = g_loc10_after - 1000*Math.floor((T_no10_After-1000)/1000);
				g_loc4_after  = g_loc4_after - Math.floor((T_no10_After-1000)/1000);
			}

			if (tileSize == 200){
				g_loc10_middle	= (1000 - no10_middle) + 410;
				g_loc10_after	= (no10_After + 100) + 65;
			}else if (tileSize == 400){
				g_loc10_middle	= (1000 - no10_middle) + 490;
				g_loc10_after	= (no10_After + 100) + 50;
			}else if (tileSize == 600){
				g_loc10_middle	= (1000 - no10_middle) + 570;
				g_loc10_after	= (no10_After + 100) + 35;
			}else if (tileSize == 800){
				g_loc10_middle	= (1000 - no10_middle) + 650;
				g_loc10_after	= (no10_After + 100) + 20;
			}else if (tileSize == 1000){
				g_loc10_middle	= (1000 - no10_middle) + 730;
				g_loc10_after	= (no10_After + 100) + 5;
			}else if (tileSize == 1200){
				g_loc10_middle	=  (1000 - no10_middle) + 770;
				g_loc10_after	= (no10_After + 100) - 10;
			}else if (tileSize == 1400){
				g_loc10_middle	=  (1000 - no10_middle) + 800;
				g_loc10_after	= (no10_After + 100) - 40;
			}else if (tileSize == 1600){
				g_loc10_middle	=  (1000 - no10_middle) + 830;
				g_loc10_after	= (no10_After + 100) - 55;
			}else if (tileSize == 1800){
				g_loc10_middle	=  (1000 - no10_middle) + 850;
				g_loc10_after	= (no10_After + 100) - 65;
			}else if (tileSize == 2000){
				g_loc10_middle	=  (1000 - no10_middle) + 880;
				g_loc10_after	= (no10_After + 100) - 70;
			}
		
			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (g_loc10_middle > 1000){		
				g_loc10_middle = g_loc10_middle - 1000;
				g_loc4_middle  = g_loc4_middle + 1;
			}else if (g_loc10_middle < 0){
				g_loc10_middle = 1000 + g_loc10_middle;
				g_loc4_middle  = g_loc4_middle - 1;
			}

			if (g_loc10_after > 1000){
				g_loc10_after = g_loc10_after-1000;
				g_loc4_after  = g_loc4_after + 1;
			}else if (g_loc10_after < 0){
				g_loc10_after = 1000 + g_loc10_after;
				g_loc4_after  = g_loc4_after - 1;
			}

			if (g_loc4_middle > 99){
				g_loc_areanum1 = g_loc_areanum1 + 1;
				g_loc4_middle = g_loc4_middle - 100;
			}else if (g_loc4_middle < 0){
				g_loc_areanum1 = g_loc_areanum1 - 1;			
				g_loc4_middle = 100 + g_loc4_middle;
			}

			if (g_loc4_after > 99){
				g_loc_areanum2 = g_loc_areanum2 + 1;
				g_loc4_after = g_loc4_after - 100;	
			}else if (g_loc4_after < 0){
				g_loc_areanum2 = g_loc_areanum2 - 1;
				g_loc4_after = 100 + g_loc4_after;	
			}				

			//좌표계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			///////////////////////////////////////////////////////////////
			//마커계산용 변수 처리 ★★★
			m_loc_areanum1	= areanum1;
			m_loc_areanum2	= areanum2;
			m_loc4_middle	= no4_middle;
			m_loc4_after	= no4_After;

			if (T_no10_middle >= 2000){
				m_loc10_middle = m_loc10_middle - 1000 * Math.floor((T_no10_middle-1000)/1000);
				m_loc4_middle  = m_loc4_middle - Math.floor((T_no10_middle-1000)/1000);
			}

			if (T_no10_After >= 2000){
				m_loc10_after = m_loc10_after - 1000 * Math.floor((T_no10_After-1000)/1000);
				m_loc4_after  = m_loc4_after - Math.floor((T_no10_After-1000)/1000);
			}

			if (tileSize == 200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1200){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1400){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-150;
			}else if (tileSize == 1600){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-135;
			}else if (tileSize == 1800){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-140;
			}else if (tileSize == 2000){
				m_loc10_middle	= (1000 - no10_middle) + 1000;
				m_loc10_after	= (no10_After + 100)-145;
			}

			//g_loc10_middle = 1000 - no10_middle;
			//g_loc10_after	 = no10_After + 100;

			if (m_loc10_middle > 1000){		
				m_loc10_middle = m_loc10_middle - 1000;
				m_loc4_middle  = m_loc4_middle + 1;
			}else if (m_loc10_middle < 0){
				m_loc10_middle = 1000 + m_loc10_middle;
				m_loc4_middle  = m_loc4_middle - 1;
			}

			if (m_loc10_after > 1000){
				m_loc10_after = m_loc10_after-1000;
				m_loc4_after  = m_loc4_after + 1;
			}else if (m_loc10_after < 0){
				m_loc10_after = 1000+m_loc10_after;
				m_loc4_after  = m_loc4_after - 1;
			}

			if (m_loc4_middle > 99){
				m_loc_areanum1 = m_loc_areanum1 + 1;
				m_loc4_middle = m_loc4_middle - 100;
			}else if (m_loc4_middle < 0){

				m_loc_areanum1 = m_loc_areanum1 - 1;			
				m_loc4_middle = 100 + m_loc4_middle;
			}

			if (m_loc4_after > 99){

				m_loc_areanum2 = m_loc_areanum2 + 1;
				m_loc4_after = m_loc4_after - 100;	

			}else if (m_loc4_after < 0){

				m_loc_areanum2 = m_loc_areanum2 - 1;
				m_loc4_after = 100 + m_loc4_after;		
			}
			
			//마커계산용 변수 처리 ★★★
			///////////////////////////////////////////////////////////////

			GMapidx = 1;
			clickcount =1;
			Move_flag = "after";
 
				 
			this.RemoveTooltip();  //툴팁삭제

			dragging = false;

			this.displayTiles();	
			this.checkPMaker();
			this.checkdistance();

			///////////////////////////////////////////////////////////////

			dragStartLeft = event.clientX;  //마우스 버튼이 눌린지점의 x좌표
			dragStartTop  = event.clientY;  //마우스 버튼이 눌린지점의 y좌표

			dragging = true;

		}
		//////////////////////////////////////////////////////////////////
	}

	//마우스 드래그 완료함수 
	this.stopMove = function() {

		var innerDiv2 = document.getElementById(m_inner_div);
		innerDiv2.style.cursor = "";
		dragging = false;

		this.checkTiles();
	}

	this.stripPx = function(value) {
		
		if (value == ""){ 
			return 0;
		}else{
			return parseFloat(value.substring(0,value.length - 2)); //parseFloat함수는 문자열을 부동소수점으로 변환시켜준다. 
																    //문자열값(100px)을 숫자(100)으로 반환
		}
	}

	//현재줌레벨 리턴함수
	this.getZoomLevel = function() {
		var z;

		if (tileSize == 200){ z = 0;
		}else if (tileSize == 400){ z = 1;
		}else if (tileSize == 600){ z = 2;
		}else if (tileSize == 800){ z = 3;
		}else if (tileSize == 1000){ z = 4;
		}else if (tileSize == 1200){ z = 5;
		}else if (tileSize == 1400){ z = 6;
		}else if (tileSize == 1600){ z = 7;
		}else if (tileSize == 1800){ z = 8;
		}else if (tileSize == 2000){ z = 9;
		}
		
		return z;
	}
	
	//서비스가능지역 이미지체크 함수 
	this.checkimg = function() {

		//내부 div에서 어떤 타일들을 보여줄지 결정한다.
		visibleTiles = this.getVisibleTiles();
	
		if (tileSize == 800){ var tileArray = visibleTiles[7];  //2차원 배열값을 변수에 저장 
		}else if (tileSize == 1000){ var tileArray = visibleTiles[6];  //2차원 배열값을 변수에 저장 
		}else if (tileSize == 1200){ var tileArray = visibleTiles[4];  //2차원 배열값을 변수에 저장 
		}else if (tileSize == 1400){ var tileArray = visibleTiles[3];  //2차원 배열값을 변수에 저장 
		}else if (tileSize == 1600){ var tileArray = visibleTiles[3];  //2차원 배열값을 변수에 저장 
		}else if (tileSize == 1800){ var tileArray = visibleTiles[3];  //2차원 배열값을 변수에 저장 
		}else if (tileSize == 2000){ var tileArray = visibleTiles[3];  //2차원 배열값을 변수에 저장 
		}
	
		var row_value  = Math.floor(tileArray[0]/100);         //area앞자리 배열값  219 / 100 = 2
		var col_value  = 20 - Math.floor(tileArray[1]/100);    //area뒷자리 배열값  26 - 2039 / 100 = 6 
		var row_value2 = Math.floor(tileArray[0]%100);         //loc4값의 앞두자리 계산 219 /100의 나머지 19
		var col_value2 = 99 - Math.floor(tileArray[1]%100);    //loc4값의 뒷두자리 계산  99 - (2039 /100)의 나머지 60

		//숫자 계산이기때문에 Loc4 10자리미만 문자처리 
		var row_string = "";
		if (row_value2 < 10){
			row_string = "0" + row_value2;
		}else{
			row_string = row_value2;
		}

		var col_string = "";
		if (col_value2 < 10){
			col_string = "0" + col_value2;
		}else{
			col_string = col_value2;
		}

		var row_start = tileArray[0] - (areanum1 * 100 + no4_middle + 1);              
		var col_start = tileArray[1] - ((20 - areanum2) * 100 + (99 - no4_After + 1)); 

		var tileName = strRow[row_value] + strCol[col_value] + row_string + col_string;  //타일명 생성

		var First_tile = document.getElementById(tileName);
		var First_imgsrc = First_tile.getAttribute("src");

		//alert(First_imgsrc);
		
		var check_value = First_imgsrc.indexOf('noImage');

		if (check_value == -1){
			var img_check = 0;
			alert("서비스가능지역");
			return img_check;
		}else{
			var img_check = 1;
			alert("서비스불가능지역");
			return img_check;
		}
			
	}
	
	//START:checkTiles
	this.checkTiles = function() {

		var innerDiv2 = document.getElementById(m_inner_div);  //각 타일을 내부 div에 추가한다.	

		visibleTiles = this.getVisibleTiles();

		visibleTilesMap = null;
		visibleTilesMap = new Array();  //타일배열 초기화(현재보여질 타일만 재배치) 

		for (i = 0; i < visibleTiles.length; i++) {  //<label id="iterate.visible.tiles"/>
									
			var tileArray = visibleTiles[i];  //2차원 배열값을 변수에 저장 
	
			var row_value  = Math.floor(tileArray[0]/100);         //area앞자리 배열값  219 / 100 = 2
			var col_value  = 20 - Math.floor(tileArray[1]/100);    //area뒷자리 배열값  26 - 2039 / 100 = 6 
			var row_value2 = Math.floor(tileArray[0]%100);         //loc4값의 앞두자리 계산 219 /100의 나머지 19
			var col_value2 = 99 - Math.floor(tileArray[1]%100);    //loc4값의 뒷두자리 계산  99 - (2039 /100)의 나머지 60

			//숫자 계산이기때문에 Loc4 10자리미만 문자처리 
			var row_string = "";
			if (row_value2 < 10){
				row_string = "0" + row_value2;
			}else{
				row_string = row_value2;
			}

			var col_string = "";
			if (col_value2 < 10){
				col_string = "0" + col_value2;
			}else{
				col_string = col_value2;
			}

			var row_start = tileArray[0] - (areanum1 * 100 + no4_middle + 1);              
			// 눈에 보일때 219 - ( 2 * 100 + 19)  = 0 
			var col_start = tileArray[1] - ((20 - areanum2) * 100 + (99 - no4_After + 1)); 
			// 눈에 보일때 2039 - ((26 - 6) * 100 + (99 - 60) = 0
		
			var tileName = strRow[row_value] + strCol[col_value] + row_string + col_string + "2";  //타일명 생성
			var imgname  = strRow[row_value] + strCol[col_value] + row_string + col_string;

			if ( i == 0){  //프린트 모듈 Area값 계산
	
				location_low = strRow[row_value];
				location_col = strCol[col_value];
			}

			visibleTilesMap[tileName] = true;  //타일맵에 현재 보여지는 타일 추가  

			var img = document.getElementById(tileName);       //현재타일명의 엘리먼트 체크 

			//이때 타일이 이미 존재하는지 확인한다.
			if (tileSize == 200){
				if (!img){   
					img = document.createElement("img");  //<label id="create.img"/>		
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_200.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					
					innerDiv2.appendChild(img);	
					
					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/200/' + imgname +'-1.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'-1.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/200/' + imgname +'-200op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-200op.jpg', tileName,m_inner_div);
					}

				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
			}else if (tileSize == 400){
				if (!img){  				
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_400.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);	
					
					if (GMapType2 == "CM"){				
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/400/' + imgname +'-400cm.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'-400cm.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){		
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/400/' + imgname +'-400op.jpg', tileName,m_inner_div);
						doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-400op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
			}else if (tileSize == 600){
				if (!img){                              
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_600.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);
					
					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/600/' + imgname +'-600cm.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'-600cm.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/600/' + imgname +'-600op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-600op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
			}else if (tileSize == 800){
				if (img == null){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_800.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName);   
					img.setAttribute("name", tileName);					
					innerDiv2.appendChild(img);	
					
					if (GMapType2 == "CM"){				
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/800/' + imgname +'-800cm.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'-800cm.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/800/' + imgname +'-800op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-800op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
			}else if (tileSize == 1000){
				if (!img){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_1000.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);	
					
					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/1000/' + imgname +'.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						//원래 비어있었음
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-1000op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
			}else if (tileSize == 1200){
				if (!img){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_1000.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);
					
					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/1000/' + imgname +'.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/1000/' + imgname +'-1000op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-1000op.jpg', tileName,m_inner_div);
					}

				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
			}else if (tileSize == 1400){
				if (!img){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_1000.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);		
					
					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/1000/' + imgname +'.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/1000/' + imgname +'-1000op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-1000op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
		  }else if (tileSize == 1600){
				if (!img){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_1000.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);		

					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/1000/' + imgname +'.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/1000/' + imgname +'-1000op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-1000op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
		 }else if (tileSize == 1800){
				if (!img){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_1000.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);		

					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/1000/' + imgname +'.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/1000/' + imgname +'-1000op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-1000op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
		 }else if (tileSize == 2000){
				if (!img){                                
					img = document.createElement("img");  //<label id="create.img"/>
					img.src = 'http://map.geopis.co.kr/map/geopis/NoImg/noImage_1000.jpg';
					img.style.position = "absolute";
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
					img.setAttribute("width", tileSize); 
					img.setAttribute("height", tileSize);
					img.setAttribute("id", tileName); 
					img.setAttribute("name", tileName);
					innerDiv2.appendChild(img);		

					if (GMapType2 == "CM"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/cm/1900/' + imgname +'-1900cm.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock/' + imgname +'-1900cm.jpg', tileName,m_inner_div);
					}else if(GMapType2 == "OP"){
						doesImageExist('http://map.geopis.co.kr/map/geopis/op/1000/' + imgname +'-1900op.jpg', tileName,m_inner_div);
						//doesImageExist('http://geoimg.paran.com/mapblock_op/' + imgname +'-1900op.jpg', tileName,m_inner_div);
					}
				}else{
					img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
					img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";
				}
		  }		
	   }

		// START:ignoreMaker
		var imgs = innerDiv2.getElementsByTagName("img");
		for (i = 0; i < imgs.length; i++){
			var id   = imgs[i].getAttribute("id");
			var name = imgs[i].getAttribute("name");
			if (!visibleTilesMap[name]){
				if (name != "MakerName" && name != "icon") {
					var delimg = document.getElementById(id);
					this.purge(delimg);
					delimg.parentNode.removeChild(delimg);
					delimg = null;
					i--;  // compensate for live nodelist
				}
			}
		}

		//CollectGarbage();        // Garbage Collector를 강제로 동작 시킨다.
		return;
	}	
	// END:checktiles

	this.purge = function(d){

		var a = d.attributes, i, l, n;
		if (a) {
			l = a.length;
			for (i = 0; i < l; i += 1) {
				n = a[i].name;
				if (typeof d[n] === 'function') {
					d[n] = null;
				}
			}
		}
		a = d.childNodes;
		if (a) {
			l = a.length;
			for (i = 0; i < l; i += 1) {
				purge(d.childNodes[i]);
			}
		}
	}

	// START:displayTiles
	this.displayTiles = function() {

		for (i = 0; i < visibleTiles.length; i++){  
			var tileArray = visibleTiles[i];  
			var row_value  = Math.floor(tileArray[0]/100);         
			var col_value  = 20 - Math.floor(tileArray[1]/100);    
			var row_value2 = Math.floor(tileArray[0]%100);         
			var col_value2 = 99 - Math.floor(tileArray[1]%100);    

			var row_string = "";
			if (row_value2 < 10){
				row_string = "0" + row_value2;
			}else{
				row_string = row_value2;
			}

			var col_string = "";
			if (col_value2 < 10){
				col_string = "0" + col_value2;
			}else{
				col_string = col_value2;
			}

			var row_start = tileArray[0] - (areanum1 * 100 + no4_middle + 1);              
			var col_start = tileArray[1] - ((20 - areanum2) * 100 + (99 - no4_After + 1)); 

			var tileName = strRow[row_value] + strCol[col_value] + row_string + col_string + "2";
			var img = document.getElementById(tileName);
			
			img.style.left = (row_start * tileSize) + Math.floor((no10_middle/1000) * tileSize) + Math.floor(viewportWidth/2) + "px";
			img.style.top  = (col_start * tileSize) + Math.floor((no10_After/1000) * tileSize) + Math.floor(viewportHeight/2) + "px";		
	   }
	}
	// END:displayTiles

	//보여질 타일 계산
	this.getVisibleTiles = function() {

		var innerDiv2 = document.getElementById(m_inner_div);  //외부 div에 대한 내부 div의 상대적인 위치

		var mapX = this.stripPx(innerDiv2.style.left);   
		var mapY = this.stripPx(innerDiv2.style.top);
		if (tileSize > 200){
			var tilesX = Math.ceil(viewportWidth/tileSize) + 2;   //가시영역에 존재하는 행과 열의 개수를 계산하는 부분
			var tilesY = Math.ceil(viewportHeight/tileSize) + 2;  // Math.ceil(n) n의 올림값반환(정수형으로)
		}else{
			var tilesX = Math.ceil(viewportWidth/tileSize) + 1.5;   //가시영역에 존재하는 행과 열의 개수를 계산하는 부분
			var tilesY = Math.ceil(viewportHeight/tileSize) + 1.5;  // Math.ceil(n) n의 올림값반환(정수형으로)
		}
		
		//타일의 시작 열과 행을 알아낸다.-1해준것은 하나 더 미리 로드하여 부드러운효과					
		var startX = Math.abs(Math.floor(mapX/tileSize)) - Math.floor(tilesX/2);
		//Math.abs(n) n의 절대값 반환 // Math.floor(n) n의 내림값반환(정수형으로)
		var startY = Math.abs(Math.floor(mapY/tileSize)) - Math.floor(tilesY/2); 

		var visibleTileArray = new Array(); //로드되어야할 모든 타일을 담는 배열 var visibleTileArray = []; 
		var counter = 0;                    //배열 카운터

		var real_startx = areanum1 * 100 + no4_middle ;               //실제 안보이는 시작점을 Km 단위로 나타냄 (ex: 2 * 100 + 21) 221
		var real_starty = (20 - areanum2) * 100 + (99 - no4_After);   //(ex: (26 - 6) * 100 + (99 - 59) 2040

		for (x = startX; x < (tilesX + startX); x++) {
			for (y = startY; y < (tilesY + startY); y++) {
				visibleTileArray[counter++] = [real_startx + x , real_starty + y]; //실제 위치 추가 (2차원 배열)
			}
		}

		return visibleTileArray; //2차원 배열 반환			
	}

	//내부 div 사이즈 설정
	this.setinnerDiv2Size = function(width, height) {
		var innerDiv2 = document.getElementById(m_inner_div);
		innerDiv2.style.width = width;
		innerDiv2.style.height = height;				
	}
	
	//외부 div 사이즈 설정
	this.setouterDivSize = function(width, height) {	
		/*var outerDiv = document.getElementById(m_outer_div)
		outerDiv.style.width = width;
		outerDiv.style.height = height;*/
	}

	//자동영역 윈도우창의 크기에 따라 Resize 
	this.Resize = function() {
	    var outerDiv = document.getElementById(m_outer_div);

		viewportWidth  = document.getElementById("outerDiv2").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv2").offsetHeight;

		this.setouterDivSize(viewportWidth,viewportHeight);

		this.checkTiles();
		this.checkPMaker();
		this.checkdistance();

	}

	//★★★
	//가운데 좌표 구하기(휠용)
	this.getCenterLocation3 = function() {		

		var c_loc10_middle = g_loc10_middle + 290;
		var c_loc10_after  = g_loc10_after - 150;
		
		var c_loc4_middle  = g_loc4_middle;
		var c_loc4_after   = g_loc4_after;
		var c_loc_areanum1 = g_loc_areanum1;
		var c_loc_areanum2 = g_loc_areanum2;

		if (c_loc10_middle > 1000)
		{		
			c_loc10_middle = c_loc10_middle - 1000;
			c_loc4_middle  = c_loc4_middle + 1;

		}else if (c_loc10_middle < 0){
			c_loc10_middle = 1000 + c_loc10_middle;
			c_loc4_middle  = c_loc4_middle - 1;
		}

		if (c_loc10_after > 1000)
		{
			c_loc10_after = c_loc10_after-1000;
			c_loc4_after  = c_loc4_after + 1;

		}
		else if (c_loc10_after < 0)
		{
			c_loc10_after = 1000 + c_loc10_after;
			c_loc4_after  = c_loc4_after - 1;
		}

		if (c_loc4_middle > 99){

			c_loc_areanum1 = c_loc_areanum1 + 1;
			c_loc10_middle = c_loc10_middle - 100;

		}else if (c_loc4_middle < 0){

			c_loc_areanum1 = c_loc_areanum1 - 1;			
			c_loc4_middle = 100 + c_loc4_middle;
		}

		if (c_loc4_after > 99){

			c_loc_areanum2 = c_loc_areanum2 + 1;
			c_loc4_after = c_loc4_after - 100;	

		}else if (c_loc4_after < 0){

			c_loc_areanum2 = c_loc_areanum2 - 1;
			c_loc4_after = 100 + c_loc4_after;	
		}			

		var row_string = "";
		if ((c_loc4_middle-1) < 10){
			row_string = "0" + (c_loc4_middle-1);
		}else{
			row_string = (c_loc4_middle-1);
		}

		var col_string = "";
		if (c_loc4_after < 10){
			col_string = "0" + c_loc4_after;
		}else{
			col_string = c_loc4_after;
		}

		var row_string2 = "";
		if (c_loc10_middle < 10){
			row_string2 = "00" + c_loc10_middle;
		}else if (c_loc10_middle < 100){
			row_string2 = "0" + c_loc10_middle;
		}else{
			row_string2 = c_loc10_middle;
		}

		var col_string2 = "";
		if (c_loc10_after < 10){
			col_string2 = "00" + c_loc10_after;
		} else if (c_loc10_after < 100){
			col_string2 = "0" + c_loc10_after;
		}else{
			col_string2 = c_loc10_after;
		}

		var mgrs_str;
		if (c_loc4_middle-1 == -1){
			mgrs_str = "52S"+strRow[c_loc_areanum1-1]+strCol[c_loc_areanum2]+"99"+row_string2+col_string+col_string2;
		}else{
			mgrs_str = "52S"+strRow[c_loc_areanum1]+strCol[c_loc_areanum2]+row_string+row_string2+col_string+col_string2;
		}
		//alert("center:"+mgrs_str);

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		//alert(UTM_Value);

		return UTM_Value;
	
	}





	//★★★
	//가운데 좌표 구하기(휠용)
	this.getCenterLocation333 = function() {

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		//alert(UTM_Value);

		return UTM_Value;
	
	}




	







	//★★★
	//가운데 좌표 구하기
	this.getCenterLocation = function() {	
		if (GMapidx == 0){ //처음시작할때
			var c_loc10_middle = g_loc10_middle;
			var c_loc10_after  = g_loc10_after;
		}else if (GMapidx == 1){ //Mousemove이벤트발생후
			if (tileSize == 200){
				var c_loc10_middle = g_loc10_middle + 535;
				var c_loc10_after  = g_loc10_after - 180;
			}else if (tileSize == 400){
				var c_loc10_middle = g_loc10_middle + 455;
				var c_loc10_after  = g_loc10_after - 170;
			}else if (tileSize == 600){
				var c_loc10_middle = g_loc10_middle + 385;
				var c_loc10_after  = g_loc10_after - 160;
			}else if (tileSize == 800){
				var c_loc10_middle = g_loc10_middle + 330;
				var c_loc10_after  = g_loc10_after - 170;
			}else if (tileSize == 1000){
				var c_loc10_middle = g_loc10_middle + 260;
				var c_loc10_after  = g_loc10_after - 140;
			}else if (tileSize == 1200){
				var c_loc10_middle = g_loc10_middle + 250;
				var c_loc10_after  = g_loc10_after - 130;
			}else if (tileSize == 1400){
				var c_loc10_middle = g_loc10_middle + 230;
				var c_loc10_after  = g_loc10_after - 130;
			}else if (tileSize == 1600){
				var c_loc10_middle = g_loc10_middle + 200;
				var c_loc10_after  = g_loc10_after - 100;
			}else if (tileSize == 1800){
				var c_loc10_middle = g_loc10_middle + 150;
				var c_loc10_after  = g_loc10_after - 80;
			}else if (tileSize == 2000){
				var c_loc10_middle = g_loc10_middle + 100;
				var c_loc10_after  = g_loc10_after -60;
			}
		}
		///////////////////////////////////////////////////////
		var c_loc4_middle  = g_loc4_middle;
		var c_loc4_after   = g_loc4_after;
		var c_loc_areanum1 = g_loc_areanum1;
		var	c_loc_areanum2 = g_loc_areanum2;

		//변경된 Loc10체크(Loc4변경) 
		if (c_loc10_middle > 1000){		
			c_loc10_middle = c_loc10_middle - 1000;
			c_loc4_middle  = c_loc4_middle + 1;
		}else if (c_loc10_middle < 0){
			c_loc10_middle = 1000 + c_loc10_middle;
			c_loc4_middle  = c_loc4_middle - 1;
		}

		if (c_loc10_after > 1000){
			c_loc10_after = c_loc10_after-1000;
			c_loc4_after  = c_loc4_after + 1;
		}else if (c_loc10_after < 0){
			c_loc10_after = 1000 + c_loc10_after;
			c_loc4_after  = c_loc4_after - 1;
		}

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (c_loc4_middle > 99){
			c_loc_areanum1 = c_loc_areanum1 + 1;
			c_loc10_middle = c_loc10_middle - 99;
		}else if (c_loc4_middle < 0){
			c_loc_areanum1 = c_loc_areanum1 - 1;			
			c_loc4_middle = 99 + c_loc4_middle;
		}

		if (c_loc4_after > 99){
			c_loc_areanum2 = c_loc_areanum2 + 1;
			c_loc4_after   = c_loc4_after - 99;	
		}else if (c_loc4_after < 0){
			c_loc_areanum2 = c_loc_areanum2 - 1;
			c_loc4_after    = 99 + c_loc4_after;	
		}			

		var row_string = "";
		if ((c_loc4_middle-1) < 10){
			row_string = "0" + (c_loc4_middle-1);
		}else{
			row_string = (c_loc4_middle-1);
		}

		var col_string = "";
		if (c_loc4_after < 10){
			col_string = "0" + c_loc4_after;
		}else{
			col_string = c_loc4_after;
		}

		var row_string2 = "";
		if (c_loc10_middle < 10){
			row_string2 = "00" + c_loc10_middle;
		}else if (c_loc10_middle < 100){
			row_string2 = "0" + c_loc10_middle;
		}else{
			row_string2 = c_loc10_middle;
		}

		var col_string2 = "";
		if (c_loc10_after < 10){
			col_string2 = "00" + c_loc10_after;
		} else if (c_loc10_after < 100){
			col_string2 = "0" + c_loc10_after;
		}else{
			col_string2 = c_loc10_after;
		}

		var mgrs_str;

		//alert(c_loc4_middle-1);
		if (c_loc4_middle-1 == -1){
			mgrs_str = "52S"+strRow[c_loc_areanum1-1]+strCol[c_loc_areanum2]+"99"+row_string2+col_string+col_string2;
		}else{
			mgrs_str = "52S"+strRow[c_loc_areanum1]+strCol[c_loc_areanum2]+row_string+row_string2+col_string+col_string2;
		}
		//alert("center:"+mgrs_str);

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		return UTM_Value;
		
	}

	//★★★ 마커용
	//가운데 좌표 구하기
	this.getCenterLocation2 = function(){		

		var row_string = "";
		if ((m_loc4_middle-1) < 10){
			row_string = "0" + (m_loc4_middle-1);
		}else{
			row_string = (m_loc4_middle-1);
		}

		var col_string = "";
		if (m_loc4_after < 10){
			col_string = "0" + m_loc4_after;
		}else{
			col_string = m_loc4_after;
		}

		var row_string2 = "";
		if (m_loc10_middle < 10){
			row_string2 = "00" + m_loc10_middle;
		}else if (m_loc10_middle < 100){
			row_string2 = "0" + m_loc10_middle;
		}else{
			row_string2 = m_loc10_middle;
		}

		var col_string2 = "";
		if (m_loc10_after < 10){
			col_string2 = "00" + m_loc10_after;
		} else if (m_loc10_after < 100){
			col_string2 = "0" + m_loc10_after;
		}else{
			col_string2 = m_loc10_after;
		}

		var mgrs_str;
		if (m_loc4_middle-1 == -1){
			mgrs_str = "52S"+strRow[m_loc_areanum1-1]+strCol[m_loc_areanum2]+"99"+row_string2+col_string+col_string2;
		}else{
			mgrs_str = "52S"+strRow[m_loc_areanum1]+strCol[m_loc_areanum2]+row_string+row_string2+col_string+col_string2;
		}

		//alert("center:"+mgrs_str);

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		return UTM_Value;
	}

	//★★★
	//왼쪽 상단 좌표 구하기
	this.getLeftTopLocation = function() {

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var left_gap = Math.floor(viewportWidth/2);
		var lt_no4_middle = 0;
		var lt_no10_middle = 0;
		lt_no4_middle = g_loc4_middle-Math.floor(left_gap/tileSize)-1;
		lt_no10_middle = left_gap%tileSize;
		lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
		lt_no10_middle = g_loc10_middle-lt_no10_middle;
		if (lt_no10_middle < 0) {
			lt_no10_middle = 1000+lt_no10_middle;
			lt_no4_middle = lt_no4_middle - 1;
		}
		
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after = 0;
		var lt_no10_after = 0;
		lt_no4_after = g_loc4_after+Math.floor(top_gap/tileSize);
		lt_no10_after = top_gap%tileSize;
		lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
		lt_no10_after = lt_no10_after+g_loc10_after;
		if (lt_no10_after > 999) {
			lt_no10_after = lt_no10_after-1000;
			lt_no4_after = lt_no4_after + 1;
		}

		///////////////////////////////////////////////////////

		var lt_areanum1 = g_loc_areanum1;
		var lt_areanum2 = g_loc_areanum2;

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){

			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;

		}else if (lt_no4_middle < 0){

			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
		
		if (lt_no4_after > 99){

			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	

		}else if (lt_no4_after < 0){

			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////

		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if (lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		} else if (lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}


		var mgrs_str;
		mgrs_str = "52S"+strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;

		//alert(mgrs_str);

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		return UTM_Value;
	}

	//◆◆◆거리용
	//왼쪽 상단 좌표 구하기(MGRS)
	this.getLeftTopLocationMGRS4 = function() {

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		if (GMapidx == 0){ //처음시작할때
			var c_loc10_middle = m_loc10_middle;
			var c_loc10_after  = m_loc10_after;
		}else if (GMapidx == 1){ //Mousemove이벤트발생후

			if (tileSize == 200){
				var c_loc10_middle = m_loc10_middle + 47;
				var c_loc10_after  = m_loc10_after - 86;
			}else if (tileSize == 400){
				var c_loc10_middle = m_loc10_middle + 28;
				var c_loc10_after  = m_loc10_after - 38;
			}else if (tileSize == 600){
				var c_loc10_middle = m_loc10_middle + 9;
				var c_loc10_after  = m_loc10_after - 20;
			}else if (tileSize == 800){
				var c_loc10_middle = m_loc10_middle + 8;
				var c_loc10_after  = m_loc10_after - 15;
			}else if (tileSize == 1000){
				var c_loc10_middle = m_loc10_middle + 8;
				var c_loc10_after  = m_loc10_after - 8;
			}else if (tileSize == 1200){
				var c_loc10_middle = m_loc10_middle + 8;
				var c_loc10_after  = m_loc10_after - 6;
			}else if (tileSize == 1400){
				var c_loc10_middle = m_loc10_middle + 8;
				var c_loc10_after  = m_loc10_after - 6;
			}else if (tileSize == 1600){
				var c_loc10_middle = m_loc10_middle + 7;
				var c_loc10_after  = m_loc10_after - 6;
			}else if (tileSize == 1800){
				var c_loc10_middle = m_loc10_middle + 7;
				var c_loc10_after  = m_loc10_after - 6;
			}else if (tileSize == 2000){
				var c_loc10_middle = m_loc10_middle + 8;
				var c_loc10_after  = m_loc10_after - 6;
			}
		}

		var left_gap = Math.floor(viewportWidth/2);
		var lt_no4_middle  = 0;
		var lt_no10_middle = 0;
		lt_no4_middle = m_loc4_middle-Math.floor(left_gap/tileSize)-1;
		lt_no10_middle = left_gap%tileSize;
		lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
		lt_no10_middle = c_loc10_middle-lt_no10_middle;
		if (lt_no10_middle < 0) {
			lt_no10_middle = 1000+lt_no10_middle;
			lt_no4_middle = lt_no4_middle - 1;
		}
		
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after  = 0;
		var lt_no10_after = 0;
		lt_no4_after = m_loc4_after+Math.floor(top_gap/tileSize);
		lt_no10_after = top_gap%tileSize;
		lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
		lt_no10_after = lt_no10_after+c_loc10_after;
		if (lt_no10_after > 999) {
			lt_no10_after = lt_no10_after-1000;
			lt_no4_after = lt_no4_after + 1;
		}

		///////////////////////////////////////////////////////
		var lt_areanum1 = m_loc_areanum1;
		var lt_areanum2 = m_loc_areanum2;

		if (lt_no10_middle > 1000){		
			lt_no10_middle = lt_no10_middle - 1000;
			lt_no4_middle  = lt_no4_middle + 1;
		}else if (lt_no10_middle < 0){
			lt_no10_middle = 1000 + lt_no10_middle;
			lt_no4_middle  = lt_no4_middle - 1;
		}

		if (lt_no10_after > 1000){
			lt_no10_after = lt_no10_after-1000;
			lt_no4_after  = lt_no4_after + 1;
		}else if (lt_no10_after < 0){
			lt_no10_after = 1000 + lt_no10_after;
			lt_no4_after  = lt_no4_after - 1;
		}

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){
			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;
		}else if (lt_no4_middle < 0){
			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
	
		if (lt_no4_after > 99){
			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	
		}else if (lt_no4_after < 0){
			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////


		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if (lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		} else if (lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}

		var mgrs_str;
		mgrs_str = strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;

		return mgrs_str;
	}	

	
	//◆◆◆ 마커용
	//왼쪽 상단 좌표 구하기(MGRS)
	this.getLeftTopLocationMGRS2 = function() {

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var left_gap = Math.floor(viewportWidth/2);
		var lt_no4_middle = 0;
		var lt_no10_middle = 0;
		lt_no4_middle = m_loc4_middle-Math.floor(left_gap/tileSize)-1;
		lt_no10_middle = left_gap%tileSize;
		lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
		lt_no10_middle = m_loc10_middle-lt_no10_middle;
		if (lt_no10_middle < 0) {
			lt_no10_middle = 1000+lt_no10_middle;
			lt_no4_middle = lt_no4_middle - 1;
		}
		
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after = 0;
		var lt_no10_after = 0;
		lt_no4_after = m_loc4_after+Math.floor(top_gap/tileSize);
		lt_no10_after = top_gap%tileSize;
		lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
		lt_no10_after = lt_no10_after+m_loc10_after;
		if (lt_no10_after > 999) {
			lt_no10_after = lt_no10_after-1000;
			lt_no4_after = lt_no4_after + 1;
		}

		///////////////////////////////////////////////////////

		var lt_areanum1 = m_loc_areanum1;
		var lt_areanum2 = m_loc_areanum2;

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){

			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;

		}else if (lt_no4_middle < 0){

			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
		
		if (lt_no4_after > 99){

			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	

		}else if (lt_no4_after < 0){

			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////

		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if (lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		} else if (lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}

		var mgrs_str;
		mgrs_str = strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;

		return mgrs_str;
	}

	//◆◆◆
	//왼쪽 상단 좌표 구하기(MGRS)
	this.getLeftTopLocationMGRS = function() {

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var left_gap = Math.floor(viewportWidth/2);
		var lt_no4_middle = 0;
		var lt_no10_middle = 0;

		lt_no4_middle = g_loc4_middle-Math.floor(left_gap/tileSize)-1;
		lt_no10_middle = left_gap%tileSize;
		lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
		lt_no10_middle = g_loc10_middle-lt_no10_middle;

		if (lt_no10_middle < 0) {
			lt_no10_middle = 1000+lt_no10_middle;
			lt_no4_middle = lt_no4_middle - 1;
		}
		
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after = 0;
		var lt_no10_after = 0;

		lt_no4_after = g_loc4_after+Math.floor(top_gap/tileSize);
		lt_no10_after = top_gap%tileSize;
		lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
		lt_no10_after = lt_no10_after+g_loc10_after;

		if (lt_no10_after > 999) {
			lt_no10_after = lt_no10_after-1000;
			lt_no4_after = lt_no4_after + 1;
		}

		///////////////////////////////////////////////////////

		var lt_areanum1 = g_loc_areanum1;
		var lt_areanum2 = g_loc_areanum2;

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){
			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;
		}else if (lt_no4_middle < 0){
			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
		
		if (lt_no4_after > 99){
			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	
		}else if (lt_no4_after < 0){
			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////
		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if (lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		} else if (lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}

		var mgrs_str;
		mgrs_str = strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;

		return mgrs_str;
	}

	//★★★
	//오른쪽 하단 좌표 구하기
	this.getRightBottomLocation = function() {

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var left_gap = Math.floor(viewportWidth/2);
		var lt_no4_middle = 0;
		var lt_no10_middle = 0;

		lt_no4_middle = g_loc4_middle+Math.floor(left_gap/tileSize)-1;
		lt_no10_middle = left_gap%tileSize;
		lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
		lt_no10_middle = lt_no10_middle+g_loc10_middle;

		if (lt_no10_middle > 999) {
			lt_no10_middle = lt_no10_middle-1000;
			lt_no4_middle = lt_no4_middle + 1;
		}
	
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after = 0;
		var lt_no10_after = 0;

		lt_no4_after = g_loc4_after-Math.floor(top_gap/tileSize);
		lt_no10_after = top_gap%tileSize;
		lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
		lt_no10_after = g_loc10_after-lt_no10_after;

		if (lt_no10_after < 0) {
			lt_no10_after = 1000+lt_no10_after;
			lt_no4_after = lt_no4_after - 1;
		}

		///////////////////////////////////////////////////////

		var lt_areanum1 = g_loc_areanum1;
		var lt_areanum2 = g_loc_areanum2;
		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){
			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;
		}else if (lt_no4_middle < 0){
			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
		
		if (lt_no4_after > 99){
			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	
		}else if (lt_no4_after < 0){
			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////

		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if (lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		} else if (lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}

		var mgrs_str;
		mgrs_str = "52S"+strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;

		//alert(mgrs_str);

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		return UTM_Value;
	}

	//★★★
	this.getClickLocation = function(event) {

		viewportWidth  = document.getElementById("outerDiv").offsetWidth;
	    viewportHeight = document.getElementById("outerDiv").offsetHeight;

		var left_gap = Math.floor(viewportWidth/2);
		var lt_no4_middle = 0;
		var lt_no10_middle = 0;
		if (event.clientX < left_gap){
			left_gap = left_gap-event.clientX;

			lt_no4_middle = g_loc4_middle-Math.floor(left_gap/tileSize)-1;
			lt_no10_middle = left_gap%tileSize;
			lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
			lt_no10_middle = g_loc10_middle-lt_no10_middle;
			if (lt_no10_middle < 0) {
				lt_no10_middle = 1000+lt_no10_middle;
				lt_no4_middle = lt_no4_middle - 1;
			}

		}else{
			left_gap = event.clientX-left_gap;

			lt_no4_middle = g_loc4_middle+Math.floor(left_gap/tileSize)-1;
			lt_no10_middle = left_gap%tileSize;
			lt_no10_middle = Math.floor((lt_no10_middle * 1000)/tileSize);
			lt_no10_middle = lt_no10_middle+g_loc10_middle;
			if (lt_no10_middle > 999) {
				lt_no10_middle = lt_no10_middle-1000;
				lt_no4_middle = lt_no4_middle + 1;
			}
		}
		
		var top_gap = Math.floor(viewportHeight/2);
		var lt_no4_after = 0;
		var lt_no10_after = 0;
		if (event.clientY < top_gap){

			top_gap = top_gap-event.clientY;

			lt_no4_after = g_loc4_after+Math.floor(top_gap/tileSize);
			lt_no10_after = top_gap%tileSize;
			lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
			lt_no10_after = lt_no10_after+g_loc10_after;
			if (lt_no10_after > 999) {
				lt_no10_after = lt_no10_after-1000;
				lt_no4_after = lt_no4_after + 1;
			}

		}else{
			top_gap = event.clientY-top_gap;

			lt_no4_after = g_loc4_after-Math.floor(top_gap/tileSize);
			lt_no10_after = top_gap%tileSize;
			lt_no10_after = Math.floor((lt_no10_after * 1000)/tileSize);
			lt_no10_after = g_loc10_after-lt_no10_after;
			if (lt_no10_after < 0) {
				lt_no10_after = 1000+lt_no10_after;
				lt_no4_after = lt_no4_after - 1;
			}
		}

		///////////////////////////////////////////////////////

		var lt_areanum1 = g_loc_areanum1;
		var lt_areanum2 = g_loc_areanum2;

		//변경된 Loc4체크(Area변경&Loc4변경) 
		if (lt_no4_middle > 99){
			lt_areanum1 = lt_areanum1 + 1;
			lt_no4_middle = lt_no4_middle - 100;
		}else if (lt_no4_middle < 0){
			lt_areanum1 = lt_areanum1 - 1;			
			lt_no4_middle = 100 + lt_no4_middle;
		}
		
		if (lt_no4_after > 99){
			lt_areanum2 = lt_areanum2 + 1;
			lt_no4_after = lt_no4_after - 100;	
		}else if (lt_no4_after < 0){
			lt_areanum2 = lt_areanum2 - 1;
			lt_no4_after = 100 + lt_no4_after;		
		}

		///////////////////////////////////////////////////////

		var row_string = "";
		if (lt_no4_middle < 10){
			row_string = "0" + lt_no4_middle;
		}else{
			row_string = lt_no4_middle;
		}

		var col_string = "";
		if (lt_no4_after < 10){
			col_string = "0" + lt_no4_after;
		}else{
			col_string = lt_no4_after;
		}

		var row_string2 = "";
		if (lt_no10_middle < 10){
			row_string2 = "00" + lt_no10_middle;
		}else if (lt_no10_middle < 100){
			row_string2 = "0" + lt_no10_middle;
		}else{
			row_string2 = lt_no10_middle;
		}

		var col_string2 = "";
		if (lt_no10_after < 10){
			col_string2 = "00" + lt_no10_after;
		} else if (lt_no10_after < 100){
			col_string2 = "0" + lt_no10_after;
		}else{
			col_string2 = lt_no10_after;
		}

		var mgrs_str;

		mgrs_str = "52S"+strRow[lt_areanum1]+strCol[lt_areanum2]+row_string+row_string2+col_string+col_string2;
	
		//alert("click:"+mgrs_str);

		var UTM_Value = Convert_MGRS_To_Geodetic(mgrs_str);

		return UTM_Value;
	}

}