/*-------------------------------------------------------------------------------
* File: 			navigation.js
* Description:		
* Date created:		January 2005
* Date modified:	May 2005
*------------------------------------------------------------------------------*/
var navigation_DEBUG = false;

var mSimpleGraphics;
var measurement;

//For Measure Tool
var currDistance = -1;
var sumDistance = 0;

var m_divBox;	//divZoomBox
var selectedTool;

var inProcessOfDrawing = false;
var inProcessOfMoving = false;
var firstTimeClick = true;
var moveAgain;
var imgMap = false;

// map size . . . dynamically updated
var iHeight;
var iWidth;
try {
	iHeight = parseInt(sMapHeight);
	iWidth = parseInt(sMapWidth);
} catch (e) {
	if (navigation_DEBUG)
			alert(e.description)
}

//------------  tova sa nekvi shit-ove golemi
// tezi ekstenti sa za golqmata karta izpolzvat se za dolu top4eto det se dviji na abe fixed mashtab
//typo e no ideqta da nameri kolko e eRight - eLeft i eTop - eBottom i kato znaem segashniq center v
//map koordinati da konstruira noviq ekstent 
var eLeft1 = 258065;
var eRight1 = 513737;
var eTop1 = 4852674;
var eBottom1 = 4678892 ;

var eLeft2 = 310035;
var eRight2 = 450873;
var eTop2 = 4805498;
var eBottom2 = 4757073;

var eLeft3 = 368121;
var eRight3 = 404369;
var eTop3 = 4778351;
var eBottom3 = 4753797;

var eLeft4 = 198981;
var eRight4 = 226406;
var eTop4 =   4729000;
var eBottom4 = 4710347;

var eLeft5 = 205559;
var eRight5 = 219995;
var eTop5 =  4724523;
var eBottom5 = 4714638;

//--------------- tova sa za drugite ---------------------------
//tova pyk sa ekstenti za sofTypeService
//analogi4no na gornite proverqva se dali v kyv serviece sme i postroqvame tova det ni trqbva 
var eLeft1s = 528103;
var eRight1s = 542847;
var eTop1s = 4711042;
var eBottom1s = 4697659;

var eLeft2s = 535909;
var eRight2s = 540440;
var eTop2s = 4701847;
var eBottom2s = 4698805;

var eLeft3s = 537628;
var eRight3s = 539414;
var eTop3s = 4706245;
var eBottom3s = 4705028;

var eLeft4s = 538221;
var eRight4s = 538763;
var eTop4s = 4705833;
var eBottom4s = 4705464;

var eLeft5s = 538361;
var eRight5s = 538540;
var eTop5s = 4705685;
var eBottom5s = 4705563;
///-------------------------------------------------------------------------



///
var eLeft = -1;
var eRight = -1;
var eTop = -1;
var eBottom = -1;

// location map size . . . dynamically updated
var xDistance = -1;
var yDistance = -1;
var mapX = -1; 
var mapY = -1;

/////these are offsets from the top left of the image
var startX;
var mapStartX;
var startY;
var mapStartY;
var endX;
var mapEndX;
var endY;
var mapEndY;


//------------- tezi pyk sa box-a ---------------------
//// I mean global for the page
var startLeftGlobal;
var startTopGlobal;
var endLeftGlobal;
var endTopGlobal;
 
//--------------- tezi se otnasqt za pan-a ------------------------------------
var m_mapXMin = 0;
var m_mapXMax = 0;
var m_mapYMin = 0;
var m_mapYMax = 0;

//koordinatite na centrovete (offset in the layer )
var oldCenterX = 0;
var oldCenterY = 0;
var newCenterX = 0;
var newCenterY = 0;

//stariqt *Min(offset* from the page left top edge)
var oldMapXMin = 0;
var oldMapYMin = 0;

//zoombox-a
var startLeftOfLayer = 0;
var startTopOfLayer = 0;


//----------------------------------------------------------------------------------------
// TEST AND DELETE IF NOT NEEDED
//var sWidth = screen.width;
//var sHeight = screen.height;
//var defaultPicture;
//var imgXCoord;
//var imgYCoord;
//tova e debelinata na stenata na kutiqta
//var ovBoxSize = 80;
//var tempSrc;
//var srcChanged = false;
//---------------------------------------------------------------------------------------
/*
function backToPreviosExtent()
{
	if (srcChanged)
	{
		srcChanged = false;
		hideLayer("divZoomBox");
		//hideLayer("inZoomBox"); 
		var map = document.getElementById("imgMap");
		map.src = tempSrc;
	}
}

function convertMapToImgCoordinates(x, y, eLeft1, eRight1, eTop1, eBottom1)
{
    var pixelX = (eRight1 - eLeft1)/iWidth;
    var pixelY = (eTop1 - eBottom1)/iHeight;
    
	imgXCoord = (x - eLeft1)/pixelX;
	
	var mouseY = (y - eBottom1)/pixelY;//tuka ne sym siguren topp ili bottom
	
	imgYCoord = iHeight - mouseY;
}

function createLayer(name, inleft, intop, width, height, visible, content) {
	    var layer;
	    document.writeln('<div id="' + name + '" style="position:absolute; overflow:hidden; left:' + inleft + 'px; top:' + intop + 'px; width:' + width + 'px; height:' + height + 'px;' + '; z-index:1; visibility:' + (visible ? 'visible;' : 'hidden;') +  ' filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50)">');
	    document.writeln(content);
	    document.writeln('</div>');
}

function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {		
	  var layer = getLayer(name);
	  
	  var newWidth = clipright - clipleft;
	  var newHeight = clipbottom - cliptop;
		
		    
		//window.status = "Rel height of the box is: " + newHeight + "RelWidth of the box is: " + newWidth;
		
		layer.height = Math.abs(newHeight);
		
		layer.width	= Math.abs(newWidth);
		
		if(newHeight > 0)
		{	
			layer.top  = cliptop  + "px";
		}
		else
		{
			layer.top = clipbottom + "px"; 
		}
		if(newWidth > 0)
		{	
			layer.left	= clipleft + "px";
		}
		else
		{
			layer.left = clipright + "px";
		}
}
*/

function GetBrowserType()
{
	//alert(navigator.appName + "\n" + navigator.appVersion + "\n" + navigator.userAgent + "\n" + navigator.platform)
	
	if (navigator.userAgent.indexOf("Firefox")>=0) {
		m_sClientBrowserType = 'Firefox';
	} else if (navigator.userAgent.indexOf('MSIE') >=0) {
		m_sClientBrowserType = 'IE';
	} else if (navigator.userAgent.indexOf('Opera') >=0) {
		m_sClientBrowserType = 'Opera';
	} else if (navigator.userAgent.indexOf('Netscape6') >=0) {
		m_sClientBrowserType = 'NS';
	}
	
	if (navigator.platform.indexOf("Win") >= 0) {
		m_sClientPlatform = 'Windows';
	} else if (navigator.platform.indexOf("Mac") >= 0) {
		m_sClientPlatform = 'Mac';
	}
}

function startUp()
{
	// Purpose: Fires when the page first loads.  
	// Assign custom event handlers to mousedown, mousemove, 
	// and mouseup.
	if (m_sClientBrowserType == 'Firefox') {
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK);
	}
	document.onmousedown = handleMouseDownEvent; //mouseDown;
	document.onmousemove = handleMouseMoveEvent; //mouseMove;
	document.onmouseup = handleMouseUpEvent; //mouseUp;
	document.ondblclick = handleDoubleClickEvent;
	document.onclick = handelClickEvent; //parent.mapClick;
}

function getCoordinateDistance()
{
    getMapXY(startX, startY);
    
    var mapStartX = mapX;
    var mapStartY = mapY;
    
    getMapXY(endX, endY);
    
    var mapEndX = mapX;
    var mapEndY = mapY;
    
    var mXDistance = mapStartX - mapEndX;
    var mYDistance = mapStartY - mapEndY;
    
	var xQuadrat =  (mXDistance)*(mXDistance);
	var yQuadrat = (mYDistance)*(mYDistance);
	
	return Math.sqrt(xQuadrat + yQuadrat);
}

function getLayer(name)
{
	var layer = document.getElementById(name);
	if (layer != null)
		return layer.style;
	else
		return null;
}

function hideLayer(name)
{
	var layer = getLayer(name);		
	layer.visibility = 'hidden';
}

function moveLayer(name, x, y)
{		
	var layer = getLayer(name);
	layer.left =  x + startLeftOfLayer;
	layer.top  =  y + startTopOfLayer;
}

function showLayer(name)
{		
	var layer = getLayer(name);		
	layer.visibility = 'visible';
}

function getMapCoords(element)
{
	var iTop = element.offsetTop;
	var iLeft = element.offsetLeft;
	
	var currElement = element;
	var parentElement = element.offsetParent;
	
	while (parentElement.tagName != "BODY")
	{
		currElement = parentElement;
		parentElement = currElement.offsetParent;
	
		iTop += parseInt(currElement.offsetTop);
		iLeft += parseInt(currElement.offsetLeft);
	}
	
	m_mapXMin = iLeft;
	m_mapXMax = iLeft + iWidth;
	m_mapYMin = iTop;
	m_mapYMax = iTop + iHeight;
}

function getMapXY(xIn,yIn)
{
	var pixelX;
	var pixelY;
	var mouseX;
	var mouseY;
	
	mouseX = xIn;
	pixelX = xDistance / iWidth;
	mapX = pixelX * mouseX + eLeft;
	mouseY = iHeight - yIn;
	pixelY = yDistance / iHeight;
	mapY = pixelY * mouseY + eBottom;
}

function isEventOverMap(x,y)
{
	if ( (x <= m_mapXMin) || (x > m_mapXMax) || (y <= m_mapYMin) || (y > m_mapYMax) )
		return false;
	else
		return true;
}

function zoomBoxShow(){
	m_divBox.style.visibility = 'visible';
	//document.getElementById("inZoomBox").style.visibility = 'visible';
}
	
function zoomBoxDraw(){
	var iWidth = endLeftGlobal - startLeftGlobal;
	var iHeight = endTopGlobal - startTopGlobal;
	
	if (iWidth > 0)
	{
		m_divBox.style.left = startLeftGlobal;
	}
	else
	{
		m_divBox.style.left = endLeftGlobal;
	}
	
	if (iHeight > 0)
	{
		m_divBox.style.top = startTopGlobal;
	}
	else
	{
		m_divBox.style.top = endTopGlobal;
	}
	
	m_divBox.style.width = Math.abs(iWidth);
	m_divBox.style.height = Math.abs(iHeight);
}

function getSelectedTool(){
	return parent.getObject("tool").value;
}

function hasMap(){
	var mapImage = document.getElementById("imgMap");
	
	if (mapImage == null)
		return false;
	else
		return true;
}

// tova e za OVMap-a
function fixDivOnSmallMap()
{
	var smWidth = parent.smWidth;
	var smHeight = parent.smHeight;
	
	var pixelX = top.sxDistance / smWidth;
	var pixelY = top.syDistance / smHeight;
	
	var tempXStart = (eLeft - top.sLeft);
	var tempXEnd = (eRight - top.sLeft);
	
	var tempYStart = (-1)*(eTop - top.sTop);
	var tempYEnd = (-1)*(eBottom - top.sTop);
	
	if(tempXStart == 0)
	{
	   top.startDivX = 0;
	}
	else 
	{
		top.startDivX = tempXStart/pixelX;
	}
	if(tempYStart == 0)
	{
		top.startDivY = 0; 
	}
	else
	{
	    top.startDivY = tempYStart/pixelY;
	}    
	
	top.endDivX = tempXEnd/pixelX;
	top.endDivY = tempYEnd/pixelY;
	
	top.currCenterX = top.startDivX + top.endDivX/2;
	top.currCenterY = top.startDivY + top.endDivY/2;
	
	parent.putDivInPlace();
}

//--------------------------------- Mouse Handlers --------------------------------------
function handleMouseMoveEvent(ev)
{
	if (!hasMap())
		return;
	
	selectedTool = getSelectedTool();
	
	var eventX;
	var eventY;
	var button;
	
	if (m_sClientBrowserType == 'Firefox')
	{
		eventX = ev.clientX;
		eventY = ev.clientY;
		button = ev.button;
		if (button == 0)
			button = "LEFT";
	}
	else if (m_sClientBrowserType == 'IE')
	{
		eventX = event.clientX;
		eventY = event.clientY;
		button = event.button;
		if (button == 1)
			button = "LEFT";
	}
	
	if (!isEventOverMap(eventX, eventY))
		return;
	
	//DEBUG
	//window.status = eventX + "," + eventY;
	
	endLeftGlobal = eventX;
	endTopGlobal = eventY;
	
	if ((selectedTool == "ZoomIn" || selectedTool == "ZoomOut") && inProcessOfDrawing == true && moveAgain == true)
	{
		if (button == "LEFT")
		{
			zoomBoxDraw();
			zoomBoxShow();	
		}
	}
	
	if (selectedTool == "Pan" && inProcessOfMoving == true && button == "LEFT" && moveAgain == true)
	{
		var divImgVar = document.getElementById("divImg");
		
		var newLeft = endLeftGlobal - startLeftGlobal;
		var newTop = endTopGlobal - startTopGlobal;
		
		divImgVar.style.left = newLeft;
		divImgVar.style.top = newTop;
		
		if ( isEventOverMap(endLeftGlobal,endTopGlobal) == true && button == "LEFT" )
			moveLayer("divImg", newLeft, newTop);
		
		return;
	}
	
	getMapXY(eventX, eventY);
	
	if (selectedTool == "Measure" && firstTimeClick == false && sumDistance != 0)
	{
		var inStatus = "";
		inStatus = inStatus + MSG_9 + Math.round(currDistance) + " " + measurement;
		inStatus = inStatus + MSG_10 + Math.round(sumDistance) + " " + measurement; 
		window.status = inStatus;
	}
}


function handleMouseDownEvent(ev)
{
	if (!hasMap())
		return;
		
	selectedTool = getSelectedTool();
	if (selectedTool == null)
		return;
	
	var eventX;
	var eventY;
	
	if (m_sClientBrowserType == 'Firefox')
	{
		eventX = ev.clientX;
		eventY = ev.clientY;
	}
	else if (m_sClientBrowserType == 'IE')
	{
		eventX = event.clientX;
		eventY = event.clientY;
	}
	
	if (!isEventOverMap(eventX, eventY))
		return;

	startLeftGlobal = eventX;
	startTopGlobal = eventY;
	
	//DEBUG
	//window.status = "Start point: ("+ startLeftGlobal +","+ startTopGlobal +")"; 
	
	if (selectedTool == "Measure")
	{
		if (firstTimeClick == false)//&& !inProcessOfDrawing --- tova trqbva da ggo sloja!!!!
		{
			startX = endX;
			startY = endY; 
		}
	
		endX = eventX;
		endY = eventY;
	
		if (firstTimeClick == true)
		{	
			startX = endX;
			startY = endY;
			firstTimeClick = false;
		}
		else
		{
			currDistance = getCoordinateDistance();
			sumDistance += currDistance;
		}
	}
	
	if ((selectedTool == "ZoomIn" || selectedTool == "ZoomOut") && moveAgain == true)
	{
		inProcessOfDrawing = true;
		startX = startLeftGlobal;
		startY = startTopGlobal;
			
		m_divBox.style.left = startX;
		m_divBox.style.top = startY;
			
		m_divBox.style.width = 0;
		m_divBox.style.height = 0;
			
		zoomBoxShow();
	}
	
	if (selectedTool == "Pan" && moveAgain == true)
	{
		var layer = getLayer("divImg");
		var leftString = layer.left.substring(0, layer.left.indexOf("px"));
		var topString = layer.top.substring(0, layer.top.indexOf("px"));
		
		inProcessOfMoving = true;
		
		oldCenterX = iWidth/2 + m_mapXMin;
		oldCenterY = iHeight/2 + m_mapYMin;
		
		oldMapXMin = m_mapXMin;
		oldMapYMin = m_mapYMin
		
		if (leftString == null || leftString == "")
		{
			startLeftOfLayer = 0;
		}
		else
		{ 
			startLeftOfLayer = parseInt(leftString); 
		}
		
		if (topString == "" || topString == null)
		{
			startTopOfLayer = 0;
		}
		else
		{
			startTopOfLayer = parseInt(topString);
		}
	}
	
	if ((m_sClientBrowserType == 'IE') && (m_sClientPlatform == 'Windows')) {
		document.getElementById("imgMap").setCapture(true);
	}
	else
	{
		ev.preventDefault();
	}
}

function handleMouseUpEvent(ev)
{
	if (!hasMap())
		return;
		
	selectedTool = getSelectedTool();
	
	if ((m_sClientBrowserType == 'IE') && (m_sClientPlatform == 'Windows')) {
		document.getElementById("divImg").releaseCapture();
	}
	
	var button;
	
	if (m_sClientBrowserType == 'Firefox')
	{
		endX = ev.clientX;
		endY = ev.clientY;
		button = ev.button;
		if (button == 0)
			button = "LEFT";
	}
	else if (m_sClientBrowserType == 'IE')
	{
		endX = event.clientX;
		endY = event.clientY;
		button = event.button;
		if (button == 1)
			button = "LEFT";
	}
	
	//DEBUG
	//window.status = "Start point: ("+ startLeftGlobal +","+ startTopGlobal +")";
	//window.status += " -- End point: ("+ endX +","+ endY +")"; 
	
	if (isNaN(startLeftGlobal) || isNaN(startTopGlobal))
		return;
	
	if ( selectedTool == "ZoomOut" && moveAgain == true && button == "LEFT")
	{
		if (startX == endX && startY == endY)	//single click
		{
			moveAgain = false;
			parent.ShowLoader();
			document.location.href = "Map.asp?lng="+ g_LANG +"&action=ZoomOut&x=" + startX + "&y=" + startY + "&zoomRatio=1"; // + 1	
			return;
		}
		else
		{	
			var startMapX, startMapY, endMapX, endMapY, ratioX, ratioY, finalRatio;
			var xDistMap, yDistMap, xDistLocal, yDistLocal, xDistLocalPixel, yDistLocalPixel, centerX, centerY;
	
			xDistMap = eRight - eLeft;
			yDistMap = eTop - eBottom;
	
			getMapXY(startX,startY);
			startMapX = mapX;
			startMapY = mapY;
	
			getMapXY(endX, endY)
			endMapX = mapX;
			endMapY = mapY;
	
			xDistLocal = endMapX - startMapX;
			yDistLocal = endMapY - startMapY;
	
			xDistLocalPixel = endX - startX;
			yDistLocalPixel = endY - startY;
	
			if (xDistLocal > 0)
			{
				centerX = startX + xDistLocalPixel/2;
			}
			else
			{
				centerX = endX - xDistLocalPixel/2;
			}
	
			if (yDistLocal > 0)
			{
				centerY = startY + yDistLocalPixel/2;
			}
			else
			{
				centerY = endY - yDistLocalPixel/2;
			}
	
			ratioX = Math.abs( xDistMap/(xDistLocal) );
			ratioY = Math.abs( yDistMap/(yDistLocal) );
			
			finalRatio = (ratioX > ratioY) ? ratioX:ratioY;
			
			centerX = Math.round(centerX);
			centerY = Math.round(centerY);
			finalRatio = Math.round(finalRatio);
			
			moveAgain = false;
			parent.ShowLoader();
	
			//if (parent.neededNewExtent == true)
			//{
			//	var additional = "&zoomBox=" + eLeft + ";" + eBottom + ";" + eRight + ";" + eTop;
			//	parent.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=ZoomOut&x=" + centerX + "&y=" + centerY + "&zoomRatio=" + finalRatio + "" + additional;
			//}
			//else
			//{
				parent.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=ZoomOut&x=" + centerX + "&y=" + centerY + "&zoomRatio=" + finalRatio;
			//}
		}
	
		hideLayer("divZoomBox");
		//hideLayer("inZoomBox"); 
		return;
	}
	
	if (selectedTool == "Pan" && moveAgain == true && button == "LEFT")
	{
		getMapCoords(document.getElementById("divImg"));
	
		var moveOffsetX = m_mapXMin - oldMapXMin;
		var moveOffsetY = m_mapYMin - oldMapYMin;
	
		if(m_mapXMin == oldMapXMin && m_mapYMin == oldMapYMin)
		{	
			newCenterX = endX;
			newCenterY = endY;
		}
		else
		{	
			newCenterX = Math.ceil(oldCenterX - moveOffsetX);
			newCenterY = Math.ceil(oldCenterY - moveOffsetY); 
		}
	
		moveAgain = false;
		parent.ShowLoader();
		
		//if (parent.neededNewExtent == true)
		//{
		//	var additional = "&zoomBox=" + eLeft + ";" + eBottom + ";" + eRight + ";" + eTop;
		//	parent.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=Pan&x=" + newCenterX + "&y=" + newCenterY + additional;
		//}
		//else
		//{
			parent.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=Pan&x=" + newCenterX + "&y=" + newCenterY;
		//}
	}
	
	if (inProcessOfDrawing == true && selectedTool == "ZoomIn" && moveAgain == true && button == "LEFT")
	{	
		//if (startX > endX - 3 && startX < endX + 3 && startY > endY - 3 && startY < endY + 3)
		if (startX == endX && startY == endY)	//single click
		{
			moveAgain = false;
			parent.ShowLoader();
			parent.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=ZoomIn&x=" + startX + "&y=" + startY; 	
			return;
		}
		else
		{
			var startMapX, startMapY, endMapX, endMapY;

			getMapXY(startX,startY);
			startMapX = mapX;
			startMapY = mapY;
		
			getMapXY(endX, endY)
			endMapX = mapX;
			endMapY = mapY;
		
			hideLayer("divZoomBox");
			//hideLayer("inZoomBox");
		
			moveAgain = false;
			parent.ShowLoader();
			parent.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=ZoomIn&zoomBox=" + startMapX + ";" + startMapY + ";" + endMapX + ";" + endMapY
		}
	}
	
	if (selectedTool == "Measure" && sumDistance > 0)
	{
		if (startX > 0 && startY > 0)
		{
			mSimpleGraphics.drawLine(startX, startY, endX, endY);
			mSimpleGraphics.paint();
		}
	}
	
	inProcessOfDrawing = false;
	iProcessOfMoving = false;
}

function handelClickEvent(ev){
	var selectedTool = getSelectedTool();
	
	if (selectedTool == '')
	{
		//if (m_sClientBrowserType == 'IE')
		//	window.event.cancelBubble = true;
		//alert(selectedTool)
		return;
	}
	
	var oPoint = new Object();

	if (m_sClientBrowserType == 'Firefox') {
		oPoint.x = ev.clientX;
		oPoint.y = ev.clientY;
	} 
	else if (m_sClientBrowserType == 'IE') 
	{
		oPoint.x = event.clientX;
		oPoint.y = event.clientY;
	}
	
	var selectedTool = getSelectedTool();
	
	if ( selectedTool == "Identify" ) {
		paren.ShowForm(false, "Identify", "", "x=" + oPoint.x + "&y=" + oPoint.y);
	}
	if ( selectedTool == "SetMarker" ){
		parent.ShowLoader();
		top.frmMap.location.href = "Map.asp?lng="+ g_LANG +"&action=SetMarker&x=" + oPoint.x + "&y=" + oPoint.y
	}
	if ( selectedTool == "Info" ) {
		parent.ShowForm(false, "Info", "", "x=" + oPoint.x + "&y=" + oPoint.y);
	}
	if (selectedTool == "addPointToRoute0"){
		parent.AddObjToRouteByXY(oPoint.x,oPoint.y, 0);
	}
	if (selectedTool == "addPointToRoute1"){
		parent.AddObjToRouteByXY(oPoint.x,oPoint.y, 1);
	}
	if (selectedTool == "addPointToRoute2"){
		parent.AddObjToRouteByXY(oPoint.x,oPoint.y, 2);
	}
	if ( selectedTool == "IdentifyFavourites" ) {
		parent.ShowForm(false, "IdentifyFavourites", "", "x=" + oPoint.x + "&y=" + oPoint.y);
	}	
	if ( selectedTool == "Favourite" ) {
		descr = getDescription("IdentifyFavourites");
		parent.AddFeature("AddFavoriteFeature", oPoint.x , oPoint.y, descr);
	}	
	if (selectedTool == "AddFav" ) {
		descr = getTxtDescription();
		parent.AddFeature("AddFavoriteFeature", oPoint.x , oPoint.y, descr);	
		top.document.getElementById("tool").value = "none";	
	}	
	if (selectedTool == "AddBufferPoint" ) {
		var buffDist = top.document.getElementById("txtBufferDistance").value;
		if ( (buffDist == ' ') || (buffDist == '') || (buffDist == null) )
		{
			top.document.getElementById("InfoMsg_4").innerHTML = MSG_6;
			return;
		}
		if ( isNaN(buffDist) )
		{
			top.document.getElementById("InfoMsg_4").innerHTML = MSG_7;
			return;
		}
		parent.ShowLoader();
		top.document.getElementById("InfoMsg_4").innerHTML = MSG_12;
		parent.AddBufferPoint(oPoint.x , oPoint.y , buffDist);    
		top.document.getElementById("tool").value = "none";      
	}
}

function handleDoubleClickEvent(ev){
	if (!hasMap())
		return;
		
	selectedTool = getSelectedTool();
	
	var eventX;
	var eventY;

	if (m_sClientBrowserType == 'Firefox') {
		eventX = ev.clientX;
		eventY = ev.clientY;
	}
	else if (m_sClientBrowserType == 'IE')
	{
		eventX = event.clientX;
		eventY = event.clientY;
	}
	
	if (selectedTool == "Measure")
	{  
		mSimpleGraphics.clear();
	}
	sumDistance = 0;
	firstTimeClick = true;
	getMapXY(eventX, eventY);
	window.status = "";
}
//------------------------------------ Mouse Handlers --------------------------------------






