var MouseUpX = 0 ;
var MouseUpY = 0 ; 
var MouseDownX = 0 ;
var MouseDownY = 0 ;
var DrawrubberBand = 0 ;
var MouseDownFlag = 0 ;
var InitialMouseX ;
var InitialMouseY ;

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function doHourglass()
{
   document.body.style.cursor = 'wait';     
}

function checkfile()
{
	var imgstr = "C:\\temp\\eula.txt";
	var filestr=imgstr.replace(/^\s+/,'').replace(/\s+$/,'');
	var len=filestr.indexOf("\\"); alert(filestr) ;

	if ((len==0)||(len==1))
	{
	alert("Drive in which file is searched must be mentioned");
	return; 
	} 

	try
	{
		var fso = new ActiveXObject('Scripting.FileSystemObject');
		var fs=fso.getFile(filestr);
		alert("File found");
	}
	catch(Exception)
	{
		alert("File not found");
	} 
}
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function getScrollOffset()
{
	var x,y;
	if (self.pageYOffset)
	{    
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop) 
	{
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;   
	}
	else if (document.body) 
	{
		x = document.body.scrollLeft;
		y = document.body.scrollTop;     
	}
	var answer = new Array(x, y);

	return answer;
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function ShowMessageBox(ToShowMessage)
{
    alert(ToShowMessage) ;
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function ChangeBasicMapUnit()
{
    var myLbl = document.getElementById("SF_IDLabelMapUnits");
    if(myLbl.innerText=="Mi")
    myLbl.innerHTML="ft";
    else if(myLbl.innerText=="Km")
    myLbl.innerHTML="mt";
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function ShowstatusBarMessage(ToShowMessage)
{
    window.status = ToShowMessage ;
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var link = '' ; 
function OpenNewWindow(TheURL, theWidth, theHeight)
{
	link = window.open(TheURL,"Link","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,left=200,top=50") ; 
	link.focus() ; 
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var linkA = '' ; 
function OpenNewWindowForLoadAddr(TheURL, theWidth, theHeight)
{
	linkA = window.open(TheURL,"Link","width = 335, height = 350, toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,left=200,top=50") ; 
	linkA.focus() ; 
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
var linkB = '' ; 
function OpenUSADigAlertWindowforNoneTickets(TheURL, theWidth, theHeight)
{
	linkB = window.open(TheURL,"Link","Width = 1000, Height = 625, toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1") ; 
	linkB.focus() ; 
}

//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var linkOwasso = '' ; 
function OpenNewWindowToOwassoSendMail()
{
	//linkOwasso = window.open(TheURL,"Owasso Send Mail","width = 555, height = 350, toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,left=200,top=50") ; 
	linkOwasso  = window.open('OwassoSendMail.aspx','OwassoSendMail',"width = 675, height = 350, left=200,top=125") ;
	linkOwasso.focus() ; 
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function moveDIVOnTheObliqueImage(X, Y)
{
	var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
	offsetarray=getScrollOffset();
	var TheImageMapLeft = document.getElementById("ImageMain").style.pixelLeft ;
	var TheImageMapTop = document.getElementById("ImageMain").style.pixelTop ;
	document.getElementById("ImageDiv").style.posLeft = X + TheImageMapLeft + offsetarray[0]; 	
	document.getElementById("ImageDiv").style.posTop = Y + TheImageMapTop + offsetarray[1]; 
	document.getElementById("ImageDiv").style.visibility = 'visible' ;
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function ChangeIcon(IconNo, MouseOverOrOut)
{
	var ImageButton1 = "" ; 
	var ImageURLPreString = "./Images/Icons/" ;
	var OnString = "_OVER.bmp" ; //changed
	var OffString = "_OFF.bmp" ; 
	var clickString="_ON.bmp";

	var StartString = "" ; 
	var EndString = "" ;   

	if (MouseOverOrOut == 1) // Mouse Over
	{
		EndString = OnString ; 			
	}
	else if(MouseOverOrOut == 2)// Mouse Out
	{
		EndString = OffString ; 		
	}
	else if(MouseOverOrOut == 3)
	 EndString = clickString;
	 

	if (IconNo == 1) // North Arrow 
	{
		ImageButton1 = document.getElementById('ImageButtonNorth');
		StartString = ImageURLPreString + "North" ;
	}
	if (IconNo == 2) // South Arrow
	{
		ImageButton1 = document.getElementById('ImageButtonSouth');
		StartString = ImageURLPreString + "South" ;
	}
	if (IconNo == 3) // West Arrow
	{
		ImageButton1 = document.getElementById('ImageButtonWest');
		StartString = ImageURLPreString + "West" ;
	}
	if (IconNo == 4) // East Arrow
	{
		ImageButton1 = document.getElementById('ImageButtonEast');
		StartString = ImageURLPreString + "East" ;
	}
	if (IconNo == 5 || IconNo == 6 || IconNo == 7 || IconNo == 8) // NW NE SW SE
	{
	    var ImageButton2 = "" ; 
		if (IconNo == 5)
		{
			ImageButton1 = document.getElementById('ImageButtonNWH');
			ImageButton2 = document.getElementById('ImageButtonNWV');			
		}
		if (IconNo == 6)
		{
			ImageButton1 = document.getElementById('ImageButtonNEH');
			ImageButton2 = document.getElementById('ImageButtonNEV');
		}
		if (IconNo == 7)
		{
			ImageButton1 = document.getElementById('ImageButtonSWH');
			ImageButton2 = document.getElementById('ImageButtonSWV');
		}
		if (IconNo == 8)
		{
			ImageButton1 = document.getElementById('ImageButtonSEH');
			ImageButton2 = document.getElementById('ImageButtonSEV');
		}
		StartString = ImageURLPreString + "HorizontalSplit" ; 
		var StartString2 = 	ImageURLPreString + "VerticalSplit" ; 
		ImageButton2.src = 	StartString2 + EndString ; 
	}		
	if (IconNo == 9) 
	{
		ImageButton1 = document.getElementById('ImageButtonZoomIn');
		StartString = ImageURLPreString + "ImageButtonZoomIn" ;
	}	
	if (IconNo == 10) 
	{
		ImageButton1 = document.getElementById('ImageButtonZoomOut');
		StartString = ImageURLPreString + "ImageButtonZoomOut" ;
	}	
	if (IconNo == 11) 
	{
		ImageButton1 = document.getElementById('ImageButtonFullExtent');
		StartString = ImageURLPreString + "ImageButtonFullExtent" ;
	}	
	if (IconNo == 12) 
	{
		ImageButton1 = document.getElementById('ImageButtonPan');
		StartString = ImageURLPreString + "ImageButtonPan" ;
	}	
	if (IconNo == 13) 
	{
		ImageButton1 = document.getElementById('ImageButtonIdentify');
		StartString = ImageURLPreString + "ImageButtonIdentify" ;
	}	
	if (IconNo == 14) 
	{
		ImageButton1 = document.getElementById('ImageButtonOverView');
		StartString = ImageURLPreString + "ImageButtonOverView" ;
	}	
	if (IconNo == 15) 
	{
		ImageButton1 = document.getElementById('ImageButtonLegend');
		StartString = ImageURLPreString + "ImageButtonLegend" ;
	}	
	if (IconNo == 16) 
	{
		ImageButton1 = document.getElementById('ImageButtonSelect');
		StartString = ImageURLPreString + "ImageButtonSelect" ;
	}
	
	if (IconNo == 17) 
	{
		ImageButton1 = document.getElementById('ImageButtonSelectPolygon');
		StartString = ImageURLPreString + "ImageButtonSelectPolygon" ;
	}	
	if (IconNo == 18) 
	{
		ImageButton1 = document.getElementById('ImageButtonClear');
		StartString = ImageURLPreString + "ImageButtonClear" ;
	}	
	if (IconNo == 19) 
	{
		ImageButton1 = document.getElementById('ImageButtonHotLink');
		StartString = ImageURLPreString + "ImageButtonHotLink" ;
	}	
	if (IconNo == 20) 
	{
		ImageButton1 = document.getElementById('ImageButtonPrint');
		StartString = ImageURLPreString + "ImageButtonPrint" ;
	}	
	if (IconNo == 21) 
	{
		ImageButton1 = document.getElementById('ImageButtonReport');
		StartString = ImageURLPreString + "ImageButtonReport" ;
	}	
	if (IconNo == 22) 
	{
		ImageButton1 = document.getElementById('ImageButtonShowHideTools');
		StartString = ImageURLPreString + "ImageButtonShowHideTools" ;
	}	
	if (IconNo == 23) 
	{
		ImageButton1 = document.getElementById('ImageButtonBookmarks');
		StartString = ImageURLPreString + "ImageButtonBookMarks" ;
	}	
	if (IconNo == 24) 
	{
		ImageButton1 = document.getElementById('ImageButtonZoomNext');
		StartString = ImageURLPreString + "ImageButtonZoomNext" ;
	}	
	if (IconNo == 25) 
	{
		ImageButton1 = document.getElementById('ImageButtonZoomPrev');
		StartString = ImageURLPreString + "ImageButtonZoomPrev" ;
	}	
	if (IconNo == 26) 
	{
		ImageButton1 = document.getElementById('ImageButtonMeasure');
		StartString = ImageURLPreString + "ImageButtonMeasure" ;
	}	
	if (IconNo == 27) 
	{
		ImageButton1 = document.getElementById('ImageButtonNetworkTools');
		StartString = ImageURLPreString + "ImageButtonNetworkTools" ;
	}	
	if (IconNo == 28) 
	{
		ImageButton1 = document.getElementById('ImageButtonUpDownStream');
		StartString = ImageURLPreString + "ImageButtonUpDownStream" ;
	}	
	if (IconNo == 33) 
	{
		ImageButton1 = document.getElementById('ImageButtonChangeService');
		StartString = ImageURLPreString + "ImageButtonChangeService" ;
	}	
	if (IconNo == 34) 
	{
		ImageButton1 = document.getElementById('ImageButtonUserProfiles');
		StartString = ImageURLPreString + "ImageButtonUserProfiles" ;
	}	
	if (IconNo == 37) 
	{
		ImageButton1 = document.getElementById('ImageButtonDrawingOptions');
		StartString = ImageURLPreString + "ImageButtonDrawingOptions" ;
	}	
	if (IconNo == 38) 
	{
		ImageButton1 = document.getElementById('ImageButtonServiceTools');
		StartString = ImageURLPreString + "ImageButtonServiceTools" ;
	}	
	//May7th
	if(IconNo == 39)
	{
	    ImageButton1 = document.getElementById('ImageButtonYokohlRanch');
		StartString = ImageURLPreString + "ImageButtonYokohlRanch" ;
	}
	if (IconNo == 40) //Nov 15
	{
		ImageButton1 = document.getElementById('ImageButtonGetInformation');
		StartString = ImageURLPreString + "ImageButtonGetInformation" ;
	}			
	ImageButton1.src = StartString + EndString ; 
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function MouseMove_old()
{
	MouseUpX = event.clientX ;
	MouseUpY = event.clientY ;
	if ((DrawrubberBand == 1) && (MouseDownFlag == 1))
	{
		moveRubber() ;
	}
	window.status = "X: " + MouseUpX  + "  Y: " + MouseUpY ;
}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function MouseMove()
{
	
	MouseUpX = event.clientX ;
	MouseUpY = event.clientY ;
	if ((DrawrubberBand == 1) && (MouseDownFlag == 1))
	{
	moveRubber() ;
	}	
	
	
	var textboxWorldCoordsObj = document.getElementById('TextBoxWorldCoordValues');
	if(textboxWorldCoordsObj != null)
	{ 
	var textboxWorldCoordsObjValue = textboxWorldCoordsObj.value ; 
	var imageObj = document.getElementById('ImageMap');	

// Getting Real World Coords From TextBox     
	var textboxWorldCoordsObjArray = new Array(6) ; 
	textboxWorldCoordsObjArray = textboxWorldCoordsObjValue.split(',') ; 
	var minx = parseFloat(textboxWorldCoordsObjArray[0]) ; 
	var miny = parseFloat(textboxWorldCoordsObjArray[1]) ; 
	var maxx = parseFloat(textboxWorldCoordsObjArray[2]) ; 
	var maxy = parseFloat(textboxWorldCoordsObjArray[3]) ; 
	var imageMapWidth = parseFloat(textboxWorldCoordsObjArray[4]) ; 
	var imageMapHeight = parseFloat(textboxWorldCoordsObjArray[5]) ; 
	var mapUnits = textboxWorldCoordsObjArray[6] ;
// End Getting Real World Coords


    //nov24 start
        var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
		offsetarray=getScrollOffset();
				
        x = event.clientX ;
	    y = event.clientY ;	
	    
	    x = x + offsetarray[0];
	    y = y + offsetarray[1];
	//nov24 end    
	    x = x - imageObj.offsetLeft ; 
	    y = y - imageObj.offsetTop ; 
	    
	    var offSetX = x - lineOffSetX ; 
		var	offSetY = y - lineOffSetY; 
		
		var realworldcoordsArray1 = CalculateRealWorldCoordinates(minx, miny, maxx, maxy, imageMapWidth, imageMapHeight,offSetX,offSetY) ;
		worldx = realworldcoordsArray1[0]; 
		worldy = realworldcoordsArray1[1]; 
		
//        window.status = "X: " + worldx  + "  Y: " + worldy ;
          window.status = "X: " + worldx.toFixed(3)  + "  Y: " + worldy.toFixed(3) ;//mar12 08

	
  }

}

// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function MouseDown()
{
	MouseDownX = event.clientX ;
	MouseDownY = event.clientY ;
	MouseDownFlag = 1 ;
	if (DrawrubberBand == 1)
	{
		startRubber() ;
	}	
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function MouseUp()
{
    var textboxDrawingModeObj = document.getElementById('TextBoxDrawingMode');

    if (textboxDrawingModeObj.value != 4) // draw box
    {
		ShowProcessingMessage() ;
    }
	
	if (MouseDownX > 0 && MouseDownY > 0)
	{
		var r = document.all.rubberBand ;    
		MouseUpX = event.clientX ;
		MouseUpY = event.clientY ;
		var TextBoxCoordinates = document.getElementById("TextBoxCoordinates") ;
//		TheImageMap = document.getElementById("ImageMap");
//		
//		var TheImageMapLeft = TheImageMap.style.pixelLeft ;
//		var TheImageMapTop = TheImageMap.style.pixelTop ;
        
        var TheImageMapLeft = imgDiv.style.pixelLeft ;
		var TheImageMapTop = imgDiv.style.pixelTop ;
		
		var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
		offsetarray=getScrollOffset();
		
		MouseDownX = MouseDownX - TheImageMapLeft + offsetarray[0];
		MouseDownY = MouseDownY - TheImageMapTop + offsetarray[1];
		
		MouseUpX = MouseUpX - TheImageMapLeft + offsetarray[0];		
		MouseUpY = MouseUpY - TheImageMapTop + offsetarray[1];
		
		var TextBoxCoordinatesValue = MouseDownX + "," + MouseDownY + "," + MouseUpX + "," + MouseUpY ;
		
		if (TextBoxCoordinates != null)
		{
			TextBoxCoordinates.setAttribute("value",TextBoxCoordinatesValue) ;
		}
		
		MouseDownFlag = 0 ;	
		
		if (textboxDrawingModeObj.value == 1 || textboxDrawingModeObj.value == 7 || textboxDrawingModeObj.value == 9 || textboxDrawingModeObj.value == 12)
		{		
			var TextBoxConfirmation = document.getElementById("TextBoxConfirmation") ;	
			
			if (textboxDrawingModeObj.value == 9)
			{
				var TextBoxConfirmValue = confirm("Click OK to generate Mailing Labels or else click Cancel.");
 				TextBoxConfirmation.setAttribute("value",TextBoxConfirmValue) ;  				
 			} 		
 			stopRubber() ;
 			document.getElementById("ImageButtonZoomIn").click() ;		
		}
		else
		{
			r.style.visibility = 'hidden' ;	
			drawAndMeasure(MouseDownX, MouseDownY, MouseUpX, MouseUpY, 4, 1) ;
		}
	}
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function startRubber () 
{
   if (document.all) 
   {
		//offset adjust
		var adjustoffsetX,adjustoffsetY;
		var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
		offsetarray=getScrollOffset();
	   
		var r = document.all.rubberBand;
		r.style.width = 0;
		r.style.height = 0;
		r.style.pixelLeft = event.x;
		r.style.pixelTop  = event.y;
		InitialMouseX = event.x+offsetarray[0];
		InitialMouseY = event.y+offsetarray[1] ;
		r.style.visibility = 'visible' ;		
		
		var textboxDrawingModeObj = document.getElementById('TextBoxDrawingMode');
		if (textboxDrawingModeObj.value == 3 || textboxDrawingModeObj.value == 4 || textboxDrawingModeObj.value == 5 || textboxDrawingModeObj.value == 6)
		{
			var textboxColorWidthObj = document.getElementById('TextBoxColorWidth'); 
			var textboxColorWidthObjValue = textboxColorWidthObj.value ; 

			//Get Color and Width
			var textBoxColorWidthArray = new Array(2) ; 
			textBoxColorWidthArray = textboxColorWidthObjValue.split('^') ; 
			var color = textBoxColorWidthArray[0] ;
			var width = textBoxColorWidthArray[1] ;
			var stylestring = width + "px solid " + color ; 
			r.style.border = stylestring ; 
			//End Get Color and Width
		}
		else
		{
			r.style.border = "1px solid #0000ff";
		}
   }
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 

function moveRubber() 
{
    //adjust offset
	var adjustoffsetX,adjustoffsetY;
	var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
	offsetarray=getScrollOffset();

	if (document.all)
	{
		var r = document.all.rubberBand ;
		var LeftPixel = r.style.pixelLeft;
		var TopPixel = r.style.pixelTop;
		var TheWidth = (event.x + offsetarray[0])- InitialMouseX ;
		var TheHeight = (event.y + offsetarray[1]) - InitialMouseY ;
		if ((event.x + offsetarray[0] >= InitialMouseX) && (event.y + offsetarray[1] >= InitialMouseY))
		{
			LeftPixel = InitialMouseX ;
			TopPixel = InitialMouseY ;
			TheWidth = TheWidth ;
			TheHeight = TheHeight ;
		}
		if ((event.x + offsetarray[0] <= InitialMouseX) && (event.y + offsetarray[1] <= InitialMouseY))
		{
			LeftPixel = event.x + offsetarray[0] ;
			TopPixel = event.y + offsetarray[1] ;
			TheWidth = Math.abs(TheWidth) ;
			TheHeight = Math.abs(TheHeight) ;
		}
		if ((event.x + offsetarray[0] <= InitialMouseX) && (event.y + offsetarray[1] >= InitialMouseY))
		{
			LeftPixel = event.x + offsetarray[0];
			TopPixel = InitialMouseY  ;
			TheWidth = Math.abs(TheWidth) ;
			TheHeight = TheHeight ;
		}
		if ((event.x + offsetarray[0] >= InitialMouseX) && (event.y + offsetarray[1] <= InitialMouseY))
		{
			LeftPixel = InitialMouseX ;
			TopPixel =  event.y + offsetarray[1] ;
			TheWidth = TheWidth ;
			TheHeight = Math.abs(TheHeight) ;
		}     
		if ((TheWidth > 0) && (TheHeight > 0))
		{
			r.style.pixelLeft = LeftPixel ;
			r.style.pixelTop  = TopPixel ;
			r.style.width = TheWidth ;
			r.style.height = TheHeight ;
			r.style.visibility = 'visible' ; 
		}
	}
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------  

function SetDrawrubberBandFlag()
{
	DrawrubberBand = 1 ;
	
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function StopDraggingImageMap()
{
	TheImageMap = document.getElementById("ImageMap");
	TheImageMap.ondragstart = function() {return false;};
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function stopRubber () 
{
	MouseDownFlag = 0 ;
	DrawrubberBand = 0 ;
} 


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/* Function for OverView Map */

var savex1 = 0 ; 
var savex2 = 0 ; 
var savey1 = 0 ; 
var savey2 = 0 ; 

function AddDivToImage(savex1,savey1,savex2,savey2)
{
	var theBox = document.getElementById('theBox');
	var imageObj = document.getElementById('ImageOverViewMap');

	if (theBox != null && imageObj != null)
	{
		theBox.style.visibility = 'visible' ;
		var leftPos = savex1 + imageObj.offsetLeft;
		var topPos = savey1 + imageObj.offsetTop;		
		
		theBox.style.left = leftPos;
		theBox.style.top = topPos;
		
		var width = savex2 - savex1 ; 
		var height = savey2 - savey1 ; 
		theBox.style.width = width ; 
		theBox.style.height = height ; 
	}
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var x = 0 ;
var y = 0 ;	
var oldx = 0 ; 
var oldy = 0 ; 
var initialx = 0 ; 
var initialy = 0 ; 
var worldx = 0 ; 
var worldy = 0 ; 
var oldworldx = 0 ; 
var oldworldy = 0 ; 
var initialworldx = 0 ;
var initialworldy = 0 ; 
var pointsarrayx = new Array() ; 
var pointsarrayy = new Array() ; 
var flag = 0 ; 
var TempFlag = 0 ; 
var initialflag = 0 ; 
var increment = 0 ; 
var pux = 0 ; 
var puy = 0 ; 
var adjustoffsetX,adjustoffsetY;
var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
offsetarray=getScrollOffset();
var lineOffSetX = 3.3; 
var lineOffSetY = 3.3 ;


function CalculateRealWorldCoordinates(minx, miny, maxx, maxy, imageMapWidth, imageMapHeight, x, y)
{
    var togoArray = new Array(2); 
	pux = (Math.abs(maxx - minx)) / imageMapWidth ; 
	puy = (Math.abs(maxy - miny)) / imageMapHeight ; 
	worldx = x * pux ; 
	worldy = (imageMapHeight - y) * puy ; 
	worldx = worldx + minx ; 
	worldy = worldy + miny ; 
	togoArray[0] = worldx ; 
	togoArray[1] = worldy ; 	 
	return togoArray ;
}



function drawAndMeasure(startx, starty, endx, endy, ByPassFlag, ClickMode)
{
	// ClickMode = 1 (Click) | 2 (Double Click) 

	var shapeMode = 0 ;     
	var textboxDrawingObj = document.getElementById('TextBoxDrawingString');
	var textboxDrawingFlagObj = document.getElementById('TextBoxSaveDrawingsFlag');
	var textboxDrawingModeObj = document.getElementById('TextBoxDrawingMode');
	var textboxWorldCoordsObj = document.getElementById('TextBoxWorldCoordValues'); 
	var textboxColorWidthObj = document.getElementById('TextBoxColorWidth'); 

	var textboxDrawingObjValue = textboxDrawingObj.value ; 
	var textboxDrawingFlagObjValue = textboxDrawingFlagObj.value ; 
	var textboxDrawingModeObjValue = textboxDrawingModeObj.value ; 
	var textboxWorldCoordsObjValue = textboxWorldCoordsObj.value ; 
	var textboxColorWidthObjValue = textboxColorWidthObj.value ; 

	//var imageObj = document.getElementById('ImageMap');	//comment out wei dec28
	var imageObj = document.getElementById('imgDiv');  //wei dec28

	// Getting Real World Coords From TextBox     
	var textboxWorldCoordsObjArray = new Array(7) ; 
	textboxWorldCoordsObjArray = textboxWorldCoordsObjValue.split(',') ; 
	var minx = parseFloat(textboxWorldCoordsObjArray[0]) ; 
	var miny = parseFloat(textboxWorldCoordsObjArray[1]) ; 
	var maxx = parseFloat(textboxWorldCoordsObjArray[2]) ; 
	var maxy = parseFloat(textboxWorldCoordsObjArray[3]) ; 
	var imageMapWidth = parseFloat(textboxWorldCoordsObjArray[4]) ; 
	var imageMapHeight = parseFloat(textboxWorldCoordsObjArray[5]) ; 
	var mapUnits = textboxWorldCoordsObjArray[6] ;
	var CurrentScale = textboxWorldCoordsObjArray[7] ;
	// End Getting Real World Coords

	//Get Color and Width
	var textBoxColorWidthArray = new Array(2) ; 
	textBoxColorWidthArray = textboxColorWidthObjValue.split('^') ; 
	var color = textBoxColorWidthArray[0] ;
	var width = textBoxColorWidthArray[1] ;
 
	//End Get Color and Width


	//offset adjust oct 28th
	var adjustoffsetX,adjustoffsetY;
	var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
	offsetarray=getScrollOffset();
	//offset adjust end
		
    if (ByPassFlag == 0 ) // Except Box
    {   
        var adjustoffset=getScrollOffset();
        x = event.clientX ;
	    y = event.clientY ;
	    	   	    	 
	   	    
	    x = x - imageObj.offsetLeft ; 
	    y = y - imageObj.offsetTop ; 
	    
	    var offSetX = x - lineOffSetX ; 
		var	offSetY = y - lineOffSetY; 
		
		//Feb27 2008
		var xx = event.clientX ;
	    var yy = event.clientY ;
	    	   
	    xx = xx + offsetarray[0];
	    yy = yy + offsetarray[1];
	    	   	    	 
	    xx = xx - imageObj.offsetLeft ; 
	    yy = yy - imageObj.offsetTop ; 
	    
	    var offSetXX = xx - lineOffSetX ; 
		var	offSetYY = yy - lineOffSetY; 
		//Feb27 2008
		
		
//		var realworldcoordsArray1 = CalculateRealWorldCoordinates(minx, miny, maxx, maxy, imageMapWidth, imageMapHeight,offSetX,offSetY) ;
        var realworldcoordsArray1 = CalculateRealWorldCoordinates(minx, miny, maxx, maxy, imageMapWidth, imageMapHeight,offSetXX,offSetYY) ;
		worldx = realworldcoordsArray1[0]; 
		worldy = realworldcoordsArray1[1]; 		
		shapeMode = textboxDrawingModeObjValue ;
        
        
		
		if (shapeMode != 13)			
		{		
			textboxDrawingFlagObj.setAttribute("value",1) ;
		}	
		
		if (shapeMode == 2 ||  shapeMode == 13) // Measure || Select by Polygon
		{
			var distance = "" ; 
			if (flag == 1)
			{ 	
			    var texttodisplay ;
				if (ClickMode == 2) // Double Click (Closing the Polygon) 
				{
					distance = Math.sqrt((worldx-initialworldx)*(worldx-initialworldx)+(worldy-initialworldy)*(worldy-initialworldy)) ;
					//distance = distance.toFixed(1) + " " + mapUnits ;
					
					 if (mapUnits == "meters") 
					{
					    CurrentScale = CurrentScale / 2.54;
					    if(CurrentScale < 1000)
					    {
					    distance = distance.toFixed(1) + " " + mapUnits ;
					    }
					    else
					    {
					    distance=distance*0.001;
					    distance = distance.toFixed(1) + " " + "Kilometer" ;
					    }
					}
					else
					{
					 if(CurrentScale < 5280)
					 {
					 distance = distance.toFixed(1) + " " + mapUnits ;
					 }
					 else
					 {
					 distance=distance*0.0001893939393939394;
					 distance = distance.toFixed(1) + " " + "Miles" ;
					 }
					}
					//commented on 07-march-08
//					if (shapeMode == 2)
//					{
//						
//						drawingFunction(x,y,initialx,initialy,distance,"#ff0000","2",shapeMode) ;
//						
//					}
//					else
//					{
//					   
//					    drawingFunction(x,y,initialx,initialy,"","#ff0000","2",2) ;
//					}	

                    //start 07-march-08
                    if (shapeMode == 2)
					{

                       if(xSave1!=document.body.scrollLeft || ySave1 != document.body.scrollTop)
		                {
		               if(xSave1!=document.body.scrollLeft & ySave1 != document.body.scrollTop)
		                    {
                                if(xSave1>document.body.scrollLeft)
		                         {
		                        initialx=initialx;
		                        }
		                        else
		                        {
		                        initialx=initialx-document.body.scrollLeft;
		                        }
                                if(ySave1>document.body.scrollTop)
		                        {
		                        initialy=initialy+ySave1;
		                        }
		                        else
		                        {
		                         initialy=initialy-document.body.scrollTop;
		                        }
		                    }
		               else
		               {
		                if(xSave1>document.body.scrollLeft & ySave1 == document.body.scrollTop)
		                    {
		                        initialx=initialx+xSave1;
		                        initialy=initialy;
		                    }
		                if(xSave1>document.body.scrollLeft & ySave1 != document.body.scrollTop)
		                    {
		                        initialx=oldinitialxx+xSave1;
		                        if(ySave1>document.body.scrollTop)
		                        {
		                        initialy=initialy+ySave1;
		                        }
		                        else
		                        {
		                         initialy=initialy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave1<document.body.scrollLeft & ySave1 == document.body.scrollTop)
		                    {
		                        initialx=initialx-document.body.scrollLeft;
		                        initialy=initialy;
		                    }
		                    if(xSave1<document.body.scrollLeft & ySave1 != document.body.scrollTop)
		                    {
		                        initialx=initialx-document.body.scrollLeft;
		                        if(ySave1>document.body.scrollTop)
		                        {
		                        initialy=initialy+ySave1;
		                        }
		                        else
		                        {
		                         initialy=initialy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave1==document.body.scrollLeft & ySave1 > document.body.scrollTop)
		                    {
		                        initialx=initialx;
		                        initialy=initialy+ySave1;
		                        
		                    }
		                    if(xSave1!=document.body.scrollLeft & ySave1 >document.body.scrollTop)
		                    {
		                     if(xSave1>document.body.scrollLeft)
		                     {
		                        initialx=initialx;
		                     }
		                     else
		                     {
		                     initialx=initialx-document.body.scrollLeft;
		                      }
		                        initialy=initialy+ySave1;
		                     }
		                    if(xSave1==document.body.scrollLeft & ySave1 < document.body.scrollTop)
		                    {
		                   
		                        initialx=initialx;
		                        initialy=initialy-document.body.scrollTop;
		                        
		                    }
		                    if(xSave1!=document.body.scrollLeft & ySave1 <document.body.scrollTop)
		                    {
		                        if(xSave1>document.body.scrollLeft)
		                     {
		                        initialx=initialx;
		                     }
		                     else
		                     {
		                     initialx=initialx-document.body.scrollLeft;
		                     }
		                        initialy=initialy-document.body.scrollTop;
		                   }
		                   
		              }
		        }  
			drawingFunction(x,y,initialx,initialy,distance,"#ff0000","2",shapeMode) ;
			}
					
			else
			{
					   if(xSave1!=document.body.scrollLeft || ySave1 != document.body.scrollTop)
		                {
		               if(xSave1!=document.body.scrollLeft & ySave1 != document.body.scrollTop)
		                    {
                                if(xSave1>document.body.scrollLeft)
		                         {
		                        initialx=initialx;
		                        }
		                        else
		                        {
		                        initialx=initialx-document.body.scrollLeft;
		                        }
                                if(ySave1>document.body.scrollTop)
		                        {
		                        initialy=initialy+ySave1;
		                        }
		                        else
		                        {
		                         initialy=initialy-document.body.scrollTop;
		                        }
		                    }
		               else
		               {
		                if(xSave1>document.body.scrollLeft & ySave1 == document.body.scrollTop)
		                    {
		                        initialx=initialx+xSave1;
		                        initialy=initialy;
		                    }
		                if(xSave1>document.body.scrollLeft & ySave1 != document.body.scrollTop)
		                    {
		                        initialx=oldinitialxx+xSave1;
		                        if(ySave1>document.body.scrollTop)
		                        {
		                        initialy=initialy+ySave1;
		                        }
		                        else
		                        {
		                         initialy=initialy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave1<document.body.scrollLeft & ySave1 == document.body.scrollTop)
		                    {
		                        initialx=initialx-document.body.scrollLeft;
		                        initialy=initialy;
		                    }
		                    if(xSave1<document.body.scrollLeft & ySave1 != document.body.scrollTop)
		                    {
		                        initialx=initialx-document.body.scrollLeft;
		                        if(ySave1>document.body.scrollTop)
		                        {
		                        initialy=initialy+ySave1;
		                        }
		                        else
		                        {
		                         initialy=initialy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave1==document.body.scrollLeft & ySave1 > document.body.scrollTop)
		                    {
		                        initialx=initialx;
		                        initialy=initialy+ySave1;
		                        
		                    }
		                    if(xSave1!=document.body.scrollLeft & ySave1 >document.body.scrollTop)
		                    {
		                     if(xSave1>document.body.scrollLeft)
		                     {
		                        initialx=initialx;
		                     }
		                     else
		                     {
		                     initialx=initialx-document.body.scrollLeft;
		                      }
		                        initialy=initialy+ySave1;
		                     }
		                    if(xSave1==document.body.scrollLeft & ySave1 < document.body.scrollTop)
		                    {
		                   
		                        initialx=initialx;
		                        initialy=initialy-document.body.scrollTop;
		                        
		                    }
		                    if(xSave1!=document.body.scrollLeft & ySave1 <document.body.scrollTop)
		                    {
		                        if(xSave1>document.body.scrollLeft)
		                     {
		                        initialx=initialx;
		                     }
		                     else
		                     {
		                     initialx=initialx-document.body.scrollLeft;
		                     }
		                        initialy=initialy-document.body.scrollTop;
		                   }
		                   
		          }
		           
		            
		        }
			   drawingFunction(x,y,initialx,initialy,"","#ff0000","2",2) ;
			}	

                    //end 07-march-08				
					pointsarrayx[increment] = worldx ; 
					pointsarrayy[increment] = worldy ; 
					
					for (var ix = 0; ix <= (pointsarrayx.length-1); ix = ix + 1)
					{
						pointsarrayx[ix] = pointsarrayx[ix] - initialworldx ; 				
						pointsarrayy[ix] = pointsarrayy[ix] - initialworldy ; 
					}
					var area = 0.0 ;
					for(var iy = 0; iy < (pointsarrayx.length-1); iy = iy + 1)
					{
						area = area + ((pointsarrayx[iy]*pointsarrayy[iy+1]) - (pointsarrayx[iy+1]*pointsarrayy[iy])) ;
					}
					area = Math.abs((area * 0.5).toFixed(2)) ;  
					
					var areainacres = 0 ; 
					var areaSq  = "" 
					if (mapUnits == "feet") 
					{
						areainacres = area * (2.295 / 100000);
						areaSq = " SqFt" ; 
						texttodisplay = "Area = " + area + areaSq + " (" + areainacres.toFixed(2) + " Acres)"; 
					}
//					if (mapUnits == "meters") 
//					{
//						areainacres = area * 0.000247105381 ;
//						areaSq = " SqMt" ; 
//					}

                    if (mapUnits == "meters") 
					{
					
						areainacres = area * 0.0001;
						areaSq = " SqMt" ; 
						texttodisplay = "Area = " + area + areaSq + " (" + areainacres.toFixed(2) + " Hectares)"; 
					}

					if (shapeMode == 2)
					{
     					showTheChromeLessPopUp(texttodisplay, initialx, initialy)     					
     				}
     				else
     				{
     					
     					drawingFunction(initialx,initialy,0,0,"","#ff0000","2",100) ;
     					ShowProcessingMessage() ; 
     					document.getElementById("ImageButtonZoomIn").click() ;		
     				}
     				flag = 2 ;        				   							    	     		
				}
				
				if (ClickMode == 1) // Single Click 
				{
					distance = Math.sqrt((worldx-oldworldx)*(worldx-oldworldx)+(worldy-oldworldy)*(worldy-oldworldy)) ;
					//distance = distance.toFixed(1) + " " + mapUnits ;
					//dec19 start
   					if (mapUnits == "meters") 
					{
					CurrentScale = CurrentScale / 2.54;
					    if(CurrentScale<1000)
					    {
					    distance = distance.toFixed(1) + " " + mapUnits ;
					    }
					    else
					    {
					    distance=distance*0.001;
					    distance = distance.toFixed(1) + " " + "Kilometer" ;
					    }
					}
					else
					{
					 if(CurrentScale<5280)
					 {
					 distance = distance.toFixed(1) + " " + mapUnits ;
					 }
					 else
					 {
					 distance=distance*0.0001893939393939394;
					 distance = distance.toFixed(1) + " " + "Miles" ;
					 }
				}
                   //dec19 end

//					if (shapeMode == 2)
//					{
//						
//						drawingFunction(oldx,oldy,x,y,distance,"#ff0000","2",shapeMode) ;				
//					}
//					else
//					{
//				
//                        drawingFunction(oldx,oldy,x,y,"","#ff0000","2",2) ;
//					}
                    //the above function commented on 07-march-08 added below fn
                    // start 07-march-08
                    	if (shapeMode == 2)
					{
				       if(xSave!=document.body.scrollLeft || ySave != document.body.scrollTop)
		                {
		               if(xSave!=document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
                                if(xSave>document.body.scrollLeft)
		                         {
		                        oldx=oldx;
		                        }
		                        else
		                        {
		                        oldx=oldx-document.body.scrollLeft;
		                        }
                                if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		               else
		               {
		                if(xSave>document.body.scrollLeft & ySave == document.body.scrollTop)
		                    {
		                        oldx=oldx+xSave;
		                        oldy=oldy;
		                    }
		                if(xSave>document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
		                        oldx=oldx+xSave;
		                        if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave<document.body.scrollLeft & ySave == document.body.scrollTop)
		                    {
		                        oldx=oldx-document.body.scrollLeft;
		                        oldy=oldy;
		                    }
		                    if(xSave<document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
		                        oldx=oldx-document.body.scrollLeft;
		                        if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave==document.body.scrollLeft & ySave > document.body.scrollTop)
		                    {
		                        oldx=oldx;
		                        oldy=oldy+ySave;
		                        
		                    }
		                    if(xSave!=document.body.scrollLeft & ySave >document.body.scrollTop)
		                    {
		                     if(xSave>document.body.scrollLeft)
		                     {
		                        oldx=oldx;
		                     }
		                     else
		                     {
		                     oldx=oldx-document.body.scrollLeft;
		                      }
		                        oldy=oldy+ySave;
		                     }
		                    if(xSave==document.body.scrollLeft & ySave < document.body.scrollTop)
		                    {
		                   
		                        oldx=oldx;
		                        oldy=oldy-document.body.scrollTop;
		                        
		                    }
		                    if(xSave!=document.body.scrollLeft & ySave <document.body.scrollTop)
		                    {
		                        if(xSave>document.body.scrollLeft)
		                     {
		                        oldx=oldx;
		                     }
		                     else
		                     {
		                     oldx=oldx-document.body.scrollLeft;
		                     }
		                        oldy=oldy-document.body.scrollTop;
		                   }
		                   
		          }
		           
		            
		        } 
		          
		          
		             drawingFunction(oldx,oldy,x,y,distance,"#ff0000","2",shapeMode) ;				
					}
					else
					{
                          if(xSave!=document.body.scrollLeft || ySave != document.body.scrollTop)
		                {
		               if(xSave!=document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
                                if(xSave>document.body.scrollLeft)
		                         {
		                        oldx=oldx;
		                        }
		                        else
		                        {
		                        oldx=oldx-document.body.scrollLeft;
		                        }
                                if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		               else
		               {
		                if(xSave>document.body.scrollLeft & ySave == document.body.scrollTop)
		                    {
		                        oldx=oldx+xSave;
		                        oldy=oldy;
		                    }
		                if(xSave>document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
		                        oldx=oldx+xSave;
		                        if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave<document.body.scrollLeft & ySave == document.body.scrollTop)
		                    {
		                        oldx=oldx-document.body.scrollLeft;
		                        oldy=oldy;
		                    }
		                    if(xSave<document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
		                        oldx=oldx-document.body.scrollLeft;
		                        if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave==document.body.scrollLeft & ySave > document.body.scrollTop)
		                    {
		                        oldx=oldx;
		                        oldy=oldy+ySave;
		                        
		                    }
		                    if(xSave!=document.body.scrollLeft & ySave >document.body.scrollTop)
		                    {
		                     if(xSave>document.body.scrollLeft)
		                     {
		                        oldx=oldx;
		                     }
		                     else
		                     {
		                     oldx=oldx-document.body.scrollLeft;
		                      }
		                        oldy=oldy+ySave;
		                     }
		                    if(xSave==document.body.scrollLeft & ySave < document.body.scrollTop)
		                    {
		                   
		                        oldx=oldx;
		                        oldy=oldy-document.body.scrollTop;
		                        
		                    }
		                    if(xSave!=document.body.scrollLeft & ySave <document.body.scrollTop)
		                    {
		                        if(xSave>document.body.scrollLeft)
		                     {
		                        oldx=oldx;
		                     }
		                     else
		                     {
		                     oldx=oldx-document.body.scrollLeft;
		                     }
		                        oldy=oldy-document.body.scrollTop;
		                   }
		                   
		          }
		           
		            
		        } 
                        drawingFunction(oldx,oldy,x,y,"","#ff0000","2",2) ;
					}

                    //end 07-march-08
					pointsarrayx[increment] = worldx ; 
					pointsarrayy[increment] = worldy ; 
					increment = increment + 1 ; 				
				}		
			}
			
			if (shapeMode == 2 && initialflag != 0) // Added for Measure Acetate
			{ 
				var drawingstring1 ; 
				var drawingstring2 ; 			
				var drawingstring3 = "" ;
				
				var printworldx ;
				var printworldy ;
				var areaworldy ; 
				
				if (initialflag != 0) 
				{
				    if (ClickMode == 1)
					{
					    printworldx = (worldx + oldworldx)/ 2 ; 
					    printworldy = (worldy + oldworldy)/ 2 ; 
					    

                        drawingstring1 = getDrawingString("Line", worldx, worldy, oldworldx, oldworldy,"", "#ff0000", 2) ;       
                        
					}
					if (ClickMode == 2)
					{
					    printworldx = (worldx + initialworldx)/ 2 ; 
					    printworldy = (worldy + initialworldy)/ 2 ; 
					    
					    areaworldy = initialworldy + ((maxy - initialworldy) / 5) ;			    
					    
					    drawingstring1 = getDrawingString("Line", worldx, worldy, initialworldx, initialworldy,"", "#ff0000", 2) ;
						drawingstring3 = getDrawingString("textformeasurearea", initialworldx, areaworldy, "", "",texttodisplay, "#ff0000", 0.8) ; 
					}			
					
                    drawingstring2 = getDrawingString("Text", printworldx, printworldy+4, "", "",distance, "#ff0000", 0.8) ; 
         			textboxDrawingObjValue = textboxDrawingObjValue + drawingstring1 + drawingstring2 + drawingstring3;							
					textboxDrawingObj.setAttribute("value",textboxDrawingObjValue) ;
				}				
			}
			
			if (flag != 2) flag = 1 ; 		
			oldx = x  ;
			oldy = y ; 
			oldworldx = worldx ;
			oldworldy = worldy ;
			xSave=document.body.scrollLeft;
            ySave =document.body.scrollTop;

				   
			// Added for Select by Polygon
			if (shapeMode == 13)
			{
				var drawingstring = getDrawingString("Line", oldworldx, oldworldy, worldx, worldy,"", color, width) ; 
				textboxDrawingObjValue = textboxDrawingObjValue + drawingstring ;
				textboxDrawingObj.setAttribute("value",textboxDrawingObjValue) ;
			}
			
			if (initialflag == 0)
			{
				initialx = oldx ; 
				initialy = oldy ; 
				initialworldx = oldworldx ; 
				initialworldy = oldworldy ; 		
				initialflag = 1; 
				xSave1=document.body.scrollLeft;
                ySave1 =document.body.scrollTop;
               

				drawingFunction(oldx,oldy,x,y,"","#0000ff",5,6) ;				
			}				
		}
		
		if (shapeMode == 3) // Line
		{
			if (flag > 0)
			{
				drawingFunction(oldx,oldy,x,y,"",color,width,shapeMode) ; 			
				var drawingstring = getDrawingString("Line", oldworldx, oldworldy, worldx, worldy,"", color, width) ; 
				textboxDrawingObjValue = textboxDrawingObjValue + drawingstring ; 				
			}
			else
			{
			    drawingFunction(x,y,x,y,"","#0000ff",5,6) ;
			}
			flag = x ; 
			oldworldx = worldx ;
			oldworldy = worldy ;
			oldx = x  ;
			oldy = y ; 	
		}
		
		if (shapeMode == 5) // Text
		{
			var text=prompt('Please enter the Text','') ;
			if (text != null)
			{ 
				var caretplace = text.indexOf('^') ; 
				var verlineplace = text.indexOf('|') ; 
				if (caretplace == -1 && verlineplace == -1)
				{	
				    // OffSet - Acetate starts from middle and WZ starts from front 
				    var newx = x ;				    
				    var drawingstring = getDrawingString("Text", worldx, worldy, "","",text, color, width) ; 
				    textboxDrawingObjValue = textboxDrawingObjValue + drawingstring ; 
				    textboxDrawingObj.setAttribute("value",textboxDrawingObjValue) ;	
				    ShowProcessingMessage() ; 
				    document.getElementById("ImageButtonZoomIn").click() ;
					
				}
				else
				{
					alert("The characters ^ and | are not supported. Please try again!") ;
				}
			}
		}
		
		if (shapeMode == 6) // Point
		{
		    
			drawingFunction(x,y,0,0,0,color,width,shapeMode) ;
			var drawingstring = getDrawingString("Point", worldx, worldy, "","",text, color, width) ; 
            textboxDrawingObjValue = textboxDrawingObjValue + drawingstring ;
            textboxDrawingObj.setAttribute("value",textboxDrawingObjValue) ; 			
		}
		
		//the following code commented on march-07 added new fn below for adding scrollbar cordinates to x,y
//		if (shapeMode == 8) // Draw Line and Buffer 
//		{
//		    var textboxTextBoxCoordinatesObj = document.getElementById('TextBoxCoordinates');
//			
//			if (flag > 0 && TempFlag != -1)
//			{
//				drawingFunction(oldx,oldy,x,y,"","#0000ff",2,3) ; 
//				drawingFunction(x,y,x,y,"","#0000ff",5,6) ; 
////				var valueToSet = oldx + "," + oldy + "," + x + "," + y ; 
//                var valueToSet = oldxx + "," + oldyy + "," + offSetXX + "," + offSetYY ; 
//				textboxTextBoxCoordinatesObj.setAttribute("value",valueToSet) ;	
//				flag = 0 ; 
//				TempFlag = -1 ; 				
//			}
//			if (TempFlag == 0)
//			{
//				drawingFunction(x,y,x,y,"","#0000ff",5,6) ; 
//				TempFlag == -2 ; 
//			}	
//			flag = x ; 			
//			oldx = x  ;
//			oldy = y ; 	
//			oldxx = offSetXX;
//			oldyy = offSetYY;	
//		}
		//fn start 07-march-08
		if (shapeMode == 8) // Draw Line and Buffer 
		{
		    var textboxTextBoxCoordinatesObj = document.getElementById('TextBoxCoordinates');
			
           
            
			if (flag > 0 && TempFlag != -1)
			{
		        if(xSave!=document.body.scrollLeft || ySave != document.body.scrollTop)
		        {
		               if(xSave!=document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
                                if(xSave>document.body.scrollLeft)
		                         {
		                        oldx=oldx;
		                        }
		                        else
		                        {
		                        oldx=oldx-document.body.scrollLeft;
		                        }
                                if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		               else
		               {
		                if(xSave>document.body.scrollLeft & ySave == document.body.scrollTop)
		                    {
		                        oldx=oldx+xSave;
		                        oldy=oldy;
		                    }
		                if(xSave>document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
		                        oldx=oldx+xSave;
		                        if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave<document.body.scrollLeft & ySave == document.body.scrollTop)
		                    {
		                        oldx=oldx-document.body.scrollLeft;
		                        oldy=oldy;
		                    }
		                    if(xSave<document.body.scrollLeft & ySave != document.body.scrollTop)
		                    {
		                        oldx=oldx-document.body.scrollLeft;
		                        if(ySave>document.body.scrollTop)
		                        {
		                        oldy=oldy+ySave;
		                        }
		                        else
		                        {
		                         oldy=oldy-document.body.scrollTop;
		                        }
		                    }
		                    if(xSave==document.body.scrollLeft & ySave > document.body.scrollTop)
		                    {
		                        oldx=oldx;
		                        oldy=oldy+ySave;
		                        
		                    }
		                    if(xSave!=document.body.scrollLeft & ySave >document.body.scrollTop)
		                    {
		                     if(xSave>document.body.scrollLeft)
		                     {
		                        oldx=oldx;
		                     }
		                     else
		                     {
		                     oldx=oldx-document.body.scrollLeft;
		                      }
		                        oldy=oldy+ySave;
		                   }
		                    if(xSave==document.body.scrollLeft & ySave < document.body.scrollTop)
		                    {
		                   
		                        oldx=oldx;
		                        oldy=oldy-document.body.scrollTop;
		                        
		                    }
		                    if(xSave!=document.body.scrollLeft & ySave <document.body.scrollTop)
		                    {
		                        if(xSave>document.body.scrollLeft)
		                     {
		                        oldx=oldx;
		                     }
		                     else
		                     {
		                     oldx=oldx-document.body.scrollLeft;
		                     }
		                        oldy=oldy-document.body.scrollTop;
		                   }
		                   
		               }
		            drawingFunction(oldx,oldy,x,y,"","#0000ff",2,3) ; 
		            
		        }
		        else
		        {
				drawingFunction(oldx,oldy,x,y,"","#0000ff",2,3) ; 
				}
				drawingFunction(x,y,x,y,"","#0000ff",5,6) ; 
                var valueToSet = oldxx + "," + oldyy + "," + offSetXX + "," + offSetYY ; 
				textboxTextBoxCoordinatesObj.setAttribute("value",valueToSet) ;	
				flag = 0 ; 
				TempFlag = -1 ; 				
			}
			if (TempFlag == 0)
			{
				drawingFunction(x,y,x,y,"","#0000ff",5,6) ; 
				TempFlag == -2 ; 
			}	
			flag = x ; 			
			oldx = x  ;
			oldy = y ; 	
			oldxx = offSetXX;
			oldyy = offSetYY;	
			xSave=document.body.scrollLeft;
            ySave =document.body.scrollTop;
		}

		
		//fn end 07-march-08
		if (shapeMode == 10) // Draw Point and Buffer 
		{
		    var textboxTextBoxCoordinatesObj = document.getElementById('TextBoxCoordinates');
		  	if (TempFlag != -1)
			{
				drawingFunction(x,y,0,0,"","#0000ff",8,6) ; 
//				var valueToSet = x + "," + y + "," + 0 + "," + 0 ; 
                var valueToSet = offSetXX + "," + offSetYY + "," + 0 + "," + 0 ; //feb27 08
                textboxTextBoxCoordinatesObj.setAttribute("value",valueToSet) ;
                TempFlag = -1 ; 
			}			
		}	
	}
	else // JUST Box
	{
	    textboxDrawingFlagObj.setAttribute("value",1) ;
		var offSetStartX = startx - lineOffSetX ; 
		var	offSetStartY = starty - lineOffSetY;
		var offSetEndX = endx - lineOffSetX ; 
		var	offSetEndY = endy - lineOffSetY;
		var realworldcoordsArray1 = CalculateRealWorldCoordinates(minx, miny, maxx, maxy, imageMapWidth, imageMapHeight,offSetStartX,offSetStartY) ;		
		var realworldcoordsArray2 = CalculateRealWorldCoordinates(minx, miny, maxx, maxy, imageMapWidth, imageMapHeight,offSetEndX,offSetEndY) ;		
        
        if ((startx == endx) && (starty == endy))
        {        
        }
        else
        { 
			var yy =  endy - starty; 
			var xx = endx - startx ;
	        
			if (yy == 88 && xx == 48)
			{
			}
			else
			{        	
				drawingFunction(startx,starty,endx,endy,"",color,width,4) ; 
				drawingFunction(x,y,0,0,0,color,width,shapeMode) ;
				var drawingstring = getDrawingString("Box", realworldcoordsArray1[0], realworldcoordsArray1[1], realworldcoordsArray2[0],realworldcoordsArray2[1],"", color, width) ; 	
				textboxDrawingObjValue = textboxDrawingObjValue + drawingstring ; 	
			}	
		}
	}
	if (shapeMode != 5)
	{
		textboxDrawingObj.setAttribute("value",textboxDrawingObjValue) ;	
    }
	
	getScrollOffset();
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function getDrawingString(shapetype, startx, starty, endx, endy, text, color, width) 
{
	var toGo = "" ; 
	var delimiter = "^" ; 
	var ender = "|" ; 
	toGo = shapetype + delimiter + startx + delimiter + starty + delimiter + endx + delimiter + endy + delimiter + text + delimiter + color + delimiter + width + ender ; 	
	return (toGo) ; 
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function drawingFunction(startx,starty,endx,endy,text,incolor,inwidth,mode)
{
	var adjustoffsetX,adjustoffsetY;
	var offsetarray=new Array(adjustoffsetX,adjustoffsetY);
	offsetarray=getScrollOffset();

	var lineOffSetX = -938+offsetarray[0]; 
	var lineOffSetY = -73+offsetarray[1];

	var textOffSetX = -940+offsetarray[0] ; 
	var textOffSetY = -110+offsetarray[1] ; 
	var boxOffSetX = -937+offsetarray[0] ; 
	var boxOffSetY = -121+offsetarray[1]; 
	var circleOffSetX = -942+offsetarray[0] ; 
	var circleOffSetY = -54+offsetarray[1];

	var linex1 = startx + lineOffSetX ; 
	var liney1 = starty + lineOffSetY ;
	var linex2 = endx + lineOffSetX ;
	var liney2 = endy + lineOffSetY ; 
	var boxx1 = Math.min(startx, endx) + boxOffSetX ;
	var boxy1 = Math.min(starty, endy) + boxOffSetY ; 
	var circlex1 = startx + circleOffSetX ;  
	var circley1 = starty + circleOffSetY ;

	var jgLine = new jsGraphics("drawLine"); 
	var jgCircle = new jsGraphics("drawCircle"); 
	var jgText = new jsGraphics("drawText");  
	var jgBox = new jsGraphics("drawBox");  	
   
   
  if (mode == 2) // Measure Line 
  {  
  
    //included to chage color
    jgText.setColor(incolor);
    jgLine.setColor(incolor);
    jgLine.setStroke(inwidth) ;
    //included to chage color
    
    var textx1 = ((startx+endx)/2) + textOffSetX ;
    var texty1 = ((starty+endy)/2) + textOffSetY ;
    jgLine.drawLine(linex1,liney1,linex2,liney2) ;
	jgLine.paint();
	jgText.setFont("Arial","12px", Font.BOLD);
	jgText.drawString(text, textx1,texty1);
	jgText.paint();		    
  }  
  if (mode == 3) // Line 
  {  
    var textx1 = ((startx+endx)/2) + textOffSetX ; 
    var texty1 = ((starty+endy)/2) + textOffSetY ;     
    jgLine.setColor(incolor);
	jgLine.setStroke(inwidth) ;
	jgLine.drawLine(linex1,liney1,linex2,liney2) ; 
	jgLine.paint();	    
  }  
  if (mode == 4) // Box
  {
    var widthofbox = Math.abs(endx - startx)-1 ; 
	var heightofbox = Math.abs(endy - starty)-1 ; 	
	var stroke = parseInt(inwidth) ; 
	jgBox.setStroke(stroke) ; 
	jgBox.setColor(incolor) ; 
	jgBox.drawRect(boxx1,boxy1,widthofbox,heightofbox);	
	jgBox.paint(); 
  } 
  if (mode == 5) // Text 
  {
    var textx1 = startx + textOffSetX ; 
    var texty1 = starty + textOffSetY ; 
    var fontsize = inwidth * 14 ; 
    var toshowFontSize = fontsize + "px" ; 
    jgText.setColor(incolor) ; 
	jgText.setFont("Arial",toshowFontSize);
	jgText.drawString(text, textx1,texty1);
	jgText.paint();    
  }  
  if (mode == 6) // Point
  {
    
	jgCircle.setColor(incolor);
	var diam = inwidth + 1;
	if (diam == 21)
	{
		circlex1 = circlex1 - 6;
		circley1 = circley1 - 7;
	}
	if (diam == 31)
	{
		circlex1 = circlex1 - 10;
		circley1 = circley1 - 12;
	}
	if (diam == 41)
	{
		circlex1 = circlex1 - 14;
		circley1 = circley1 - 17;
	}
	if (diam == 51)
	{
		circlex1 = circlex1 - 19;
		circley1 = circley1 - 21;
	}	
	jgCircle.fillEllipse(circlex1,circley1,diam,diam);  
	jgCircle.paint() ;  
  }
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function showTheChromeLessPopUp(textToDisplay, startingXPoint, startingYPoint)
{
   	var oPopup = window.createPopup();
	var oPopBody = oPopup.document.body;
    oPopBody.style.backgroundColor = "lightyellow";
    oPopBody.style.border = "solid black 1px";
    oPopBody.innerHTML = textToDisplay;
    var distance1=textToDisplay;
    bod1=document.getElementById("bodmeasure");
   
    bod1.style.left=startingXPoint;
    bod1.style.top=startingYPoint;
    
    dynamicarea= "<v:rect style='width:130pt; height: 30pt' fillcolor='#FAFAD2'><v:textbox style='mso-fit-text-to-shape:True' inset = '0,0,0,0'><font size='2'><span style='font-family : Arial'><b>"+distance1+"</b></span></font></v:textbox></v:rect>";
    document.getElementById("bodmeasure").insertAdjacentHTML("AfterBegin",dynamicarea); 	
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function ShowProcessingMessage()
{ 
    var oPopup = window.createPopup();
    var oPopBody = oPopup.document.body;
    oPopBody.style.backgroundColor = "blue";
    oPopBody.style.border = "solid white 2px";
    var message="Processing Request .. Please Wait.";
    
    bod1=document.getElementById("bod");
    messagediv=document.getElementById("formessage");
    imagemapwidth=document.getElementById("ImageMap").width;
       
    bod1.style.left=250;
    bod1.style.top=330;    
    messagediv.style.left=250;
    messagediv.style.top=330-20;

	if(imagemapwidth==567)
	{
		bod1.style.left=200;
		bod1.style.top=303;
		messagediv.style.left=200;
		messagediv.style.top=300-16;
	}
	if(imagemapwidth==827)
	{
		bod1.style.left=300;
		bod1.style.top=383;
		messagediv.style.left=300;
		messagediv.style.top=380-16;
	}
	
	if(imagemapwidth==1144)
	{
		bod1.style.left=400;
		bod1.style.top=483;
		messagediv.style.left=400;
		messagediv.style.top=480-16;
	}
	
    busymessage="<v:rect style='width:172pt; height: 25pt' fillcolor='#E8EEFA'><v:textbox style='mso-fit-text-to-shape:True' inset = '0,0,0,0'><font size='2' color='Black'><span style='font-family : Arial'><b><center>"+message+"<center></b></span></font></v:textbox></v:rect>";
	
	if(messagediv.style.visibility != "visible")
	{
		document.getElementById("formessage").insertAdjacentHTML("AfterBegin",busymessage);
		messagediv.style.visibility="visible";
	} 
	if(bod1.style.visibility != "visible")
	{
		dynamicarea= "<v:rect style='width:172pt; height: 10pt' fillcolor='#FAFAD2'><v:fill src='./Images/Icons/SmallProcessing.gif' type='frame'></v:fill></v:rect>";
		document.getElementById("bod").insertAdjacentHTML("AfterBegin",dynamicarea);
		bod1.style.visibility="visible";
	}
}


// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function ShowProcessingMessageForLoginForm()
{ 
    var oPopup = window.createPopup();
	var oPopBody = oPopup.document.body;
    oPopBody.style.backgroundColor = "blue";
    oPopBody.style.border = "solid white 2px";
    var message="Processing Request .. Please Wait.";
    
    bod1=document.getElementById("bod");
    messagediv=document.getElementById("formessage");
          
    bod1.style.left=350;
    bod1.style.top=330;    
    messagediv.style.left=350;
    messagediv.style.top=330-20;
	
	busymessage="<v:rect style='width:172pt; height: 25pt' fillcolor='#E8EEFA'><v:textbox style='mso-fit-text-to-shape:True' inset = '0,0,0,0'><font size='2' color='Black'><span style='font-family : Arial'><b><center>"+message+"<center></b></span></font></v:textbox></v:rect>";
	
	if(messagediv.style.visibility != "visible")
	{
		document.getElementById("formessage").insertAdjacentHTML("AfterBegin",busymessage);
		messagediv.style.visibility="visible";
	}
 
	if(bod1.style.visibility != "visible")
	{
		dynamicarea= "<v:rect style='width:172pt; height: 10pt' fillcolor='#FAFAD2'><v:fill src='./Images/Icons/SmallProcessing.gif' type='frame'></v:fill></v:rect>";
		document.getElementById("bod").insertAdjacentHTML("AfterBegin",dynamicarea);
		bod1.style.visibility="visible";
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------

var selectedObj;
var offsetX = 0;
var offsetY = 0;

var dragObject = false;

function PanMouseDown()
{
  setSelectedObj();
  if(selectedObj)
  {
   dragObject = true;
   offsetX = window.event.offsetX - document.body.scrollLeft;
   offsetY = window.event.offsetY - document.body.scrollTop;            
   document.onmousemove = PanMouseMove;
  
  }
}

function PanMouseUp()
{
  dragObject = false;
}

function PanMouseMove()
{
  if(dragObject)
  {
    drag();
    return false;
  }

}

function setSelectedObj() 
{
    
    var imgObj = document.getElementById("ImageMap");
    selectedObj = imgObj;
}

function drag()
{
  if(selectedObj)
  { 
  
     var imgMapObj = document.getElementById("ImageMap");
     var TheImageMapLeft = imgDiv.style.pixelLeft ;
	 var TheImageMapTop = imgDiv.style.pixelTop ;
	 
    
     //outside east boundary
     if ((event.clientX > (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth)) && (event.clientY > imgDiv.style.pixelTop) && (event.clientY < (imgDiv.style.pixelTop + imgDiv.style.pixelHeight)))
	 {
     shiftTo(imgMapObj, (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth - offsetX - TheImageMapLeft), (event.clientY - offsetY - TheImageMapTop))
     }
     //outside west boundary
     else if ((event.clientX < imgDiv.style.pixelLeft) && (event.clientY > imgDiv.style.pixelTop) && (event.clientY < (imgDiv.style.pixelTop + imgDiv.style.pixelHeight)))
     {
     shiftTo(imgMapObj, (imgDiv.style.pixelLeft - offsetX - TheImageMapLeft), (event.clientY - offsetY - TheImageMapTop))
     }
     //outside south boundary
     else if ((event.clientY > (imgDiv.style.pixelTop + imgDiv.style.pixelHeight)) && (event.clientX > imgDiv.style.pixelLeft) && (event.clientX < (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth)))
     {
     shiftTo(imgMapObj, (event.clientX - offsetX - TheImageMapLeft), (imgDiv.style.pixelTop + imgDiv.style.pixelHeight - offsetY - TheImageMapTop))
     }
     //outside north boundary
     else if ((event.clientY < imgDiv.style.pixelTop) && (event.clientX > imgDiv.style.pixelLeft) && (event.clientX < (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth))) 
     {
     shiftTo(imgMapObj, (event.clientX - offsetX - TheImageMapLeft), (imgDiv.style.pixelTop - TheImageMapTop - offsetY))
     }
     //outside east south boundary
     else if ((event.clientX >= (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth)) && (event.clientY >= (imgDiv.style.pixelTop + imgDiv.style.pixelHeight)))
     {
     shiftTo(imgMapObj, (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth - offsetX - TheImageMapLeft), (imgDiv.style.pixelTop + imgDiv.style.pixelHeight - offsetY - TheImageMapTop))
     }
     //outside west south boundary
     else if ((event.clientX <= imgDiv.style.pixelLeft) && (event.clientY >= (imgDiv.style.pixelTop + imgDiv.style.pixelHeight)))
     {
     shiftTo(imgMapObj, (imgDiv.style.pixelLeft - offsetX - TheImageMapLeft), (imgDiv.style.pixelTop + imgDiv.style.pixelHeight - offsetY - TheImageMapTop))
     }
     //outside north west boundary
     else if ((event.clientX <= imgDiv.style.pixelLeft) && (event.clientY <= imgDiv.style.pixelTop))
     {
     shiftTo(imgMapObj, (imgDiv.style.pixelLeft - offsetX - TheImageMapLeft), (imgDiv.style.pixelTop - TheImageMapTop - offsetY))
     }
     //outside north east boundary
     else if ((event.clientX >= imgDiv.style.pixelLeft) && (event.clientY <= imgDiv.style.pixelTop))
     {
     shiftTo(imgMapObj, (imgDiv.style.pixelLeft + imgDiv.style.pixelWidth - offsetX - TheImageMapLeft), (imgDiv.style.pixelTop - TheImageMapTop - offsetY))
     }
     //inside the boundary
     else
     {
       shiftTo(imgMapObj, (event.clientX - offsetX - TheImageMapLeft), (event.clientY - offsetY - TheImageMapTop))
     }
  }
}

function shiftTo(obj, x, y) 
{
    obj.style.pixelLeft = x;
    obj.style.pixelTop = y;
}

//-------------------------------------------------------------------------------------------------------------------------------


    function displayRow(noOfRows)
	  {	 

      var RowNames = "captionRow_"+event.srcElement.id+"_row"; 			 
      var x=0; 
       
      while(noOfRows>0)
      {
        x++;
        var RowName = RowNames+x;		
        var row1 = document.getElementById(RowName);
        
        
        var tocheck = document.getElementById(event.srcElement.id).innerText;
        var firstchar = tocheck.charAt(0) ;
        if (firstchar == "+")
        {
        row1.style.display = '';
        }
        else
        {
        row1.style.display = 'none';
        }

        noOfRows--;
      }

        var flag = 0;
        var tocheck = document.getElementById(event.srcElement.id).innerText;
        var firstchar = tocheck.charAt(0) ;
        if (firstchar == "+")
        {
        flag = 1;
        }
        else
        {
        flag = 0;
        }


      if (flag == 0)
      {
        var temp = document.getElementById(event.srcElement.id);
        var tempValue = temp.id;
        temp.value = "+ " + tempValue;
      }
      else
      {
        var temp = document.getElementById(event.srcElement.id);
        var tempValue = temp.id;
        temp.value = "- " + tempValue;
      }
			  
	}
    
    function InitDisplayRow()
	{	
	    var Table1 = document.getElementById('TableMainXMLIdentify');
	    if (Table1 != null)
	    {
	    var rows = Table1.getElementsByTagName("tr");
            var rowsLength = rows.length;   
            var i = 0;
        
            while(rowsLength)
            {
               if(rows[i].id != "")
               {
                  rows[i].style.display = 'none';                
               }   
               i++
               rowsLength--; 
            }
            
        }
       
	}
	
//-----------------------------------------------------------------------------------------------------------------------------	
