function startDraw(){
	try{
		//map.DetachEvent("onmousemove", DrawPolyMouseMove);
		//map.DetachEvent("onclick", DrawPolyMouseClick);
		DeleteShape();
		map.DetachEvent("onendpan",EventEndCPan);
		map.DetachEvent("onendzoom", EventEndCPan);
		map.DeleteAllPushpins();
		map.DeleteRoute();
		ispoly= 1;
		//	document.getElementById('resultDiv').innerHTML ="";
	}
	catch(err){}
	map.AttachEvent("onclick", DrawPolyMouseClick);
	map.AttachEvent("onmousemove", MouseMove);
	document.getElementById("myMap").style.cursor='crosshair';
}


function MouseMove(e){
   var x = e.mapX;
   var y = e.mapY;
   pixel = new VEPixel(x, y);
   var LL = map.PixelToLatLong(pixel);

}



function DrawPolyMouseClick(e){
//alert('another click');
   var x = e.mapX;
   var y = e.mapY;
   pixel = new VEPixel(x, y);
   var LL = map.PixelToLatLong(pixel);    
      
   if (myPoints.length == 0 && myGeomType != "point")  {
       map.DetachEvent("onmousemove", MouseMove);
       map.AttachEvent("onmousemove", DrawPolyMouseMove);

   }

   myPoints.push(LL);
   if (myPoints.length == 1){
   firstLL = LL;
   }
 	
   if (myPoints.length == 8){
   	alert('The maximum number of points to define your polygon is 8');
   }
   
   if (e.rightMouseButton || myPoints.length == 8)   {
	if(LL != firstLL){
		myPoints.push(firstLL);
		}
	
	  try  {
			map.DetachEvent("onmousemove", DrawPolyMouseMove);
			map.DetachEvent("onclick", DrawPolyMouseClick);
			//  document.getElementById("divDistance").style.visibility = "hidden";
			slDrawing.DeleteShape(tempShape);
			slDrawing.DeleteShape(tempCircle);
       }
       catch (err)  {
       }
	   //alert(myPolyBigBox);
	var basePoly = new VEPolygon('polygon', myPoints, new VEColor(0,0,111,.1), new VEColor(0,0,111,1), 1); 
	map.DeleteAllPolygons();
	//  add our new polygon
	map.AddPolygon(basePoly);
	
	getPolypoints();

   }
   else   {
       document.getElementById("myMap").style.cursor='crosshair';
   }
   

}

var polyurl;

function getPolypoints(){
//alert ('i am here');

//alert(myPoints);
	polyurl = '';
	var myPolyPoins = "";
	var myPolyLats = "";
	var myPolyLongs = "";
	var myTempPoly = "";
//	url = "getPointsInPoly.cfm?all=1";
	
	var myPolyBigBox =  new Array(4);
	for(var j=0; j<myPoints.length;j++){
		myTempPoly	= myPoints[j]+",";
		//alert(myTempPoly);
		myPolyPoins = myPolyPoins +  myPoints[j]+ "]";
		myPolyLats = myPolyLats + myTempPoly.split(',')[0]+ ",";
		myPolyLongs = myPolyLongs + myTempPoly.split(',')[1]+",";
	}	
	//alert (myPolyLats);
	//alert (myPolyLongs);
	
	myPolyLats = doSort(myPolyLats);
	myPolyLongs = doSort(myPolyLongs);
	
	
	var NELat = myPolyLats[myPoints.length];
	var NELng = myPolyLongs[0];
	var SWLat = myPolyLats[1];
	var SWLng = myPolyLongs[myPoints.length-1];
	

	
	if (myPolyPoins != ''){
		polyurl = polyurl.concat('&myPoly=');
		polyurl = polyurl.concat(myPolyPoins);
	}
	
	if (NELat != ''){
		polyurl = polyurl.concat('&NELat=');
		polyurl = polyurl.concat(NELat);
	}
	if (NELng != ''){
		polyurl = polyurl.concat('&NELng=');
		polyurl = polyurl.concat(NELng);
	}
	if (SWLat != ''){
		polyurl = polyurl.concat('&SWLat=');
		polyurl = polyurl.concat(SWLat);
	}
	if (SWLng != ''){
		polyurl = polyurl.concat('&SWLng=');
		polyurl = polyurl.concat(SWLng);
	}
	polyurl = polyurl.concat('&ispoly=1');

icon = "poly";
  //alert('from poly:' + polyurl);
	//getFrmparameters(url, icon);
submitSearch(document.sidesearch);
	
}


function DrawPolyMouseMove(e){
   var x = e.mapX;
   var y = e.mapY;
   pixel = new VEPixel(x, y);
   var LL = map.PixelToLatLong(pixel);

   tempPoints = myPoints.slice(0, myPoints.length);
   tempPoints.push(LL);
 
    try   {
       slDrawing.DeleteShape(tempShape);
       slDrawing.DeleteShape(tempCircle);
   }
   catch (err)  {
   }
   
   if (tempPoints.length == 2)   {
       tempShape = new VEShape(VEShapeType.Polyline, tempPoints);
       tempShape.HideIcon();
       slDrawing.AddShape(tempShape);
    
   }
   
   if (tempPoints.length > 2)   {
   
        tempShape = new VEShape(VEShapeType.Polygon, tempPoints);
          
       tempShape.HideIcon();
       slDrawing.AddShape(tempShape);
   }
}

 function DeleteShape() { 

	deletePoly();
	showMore('mainmenu','resultmenu');
	//document.getElementById("myMap").style.cursor='crosshair';
	document.getElementById("myMap").style.cursor = 'http://maps.live.com/cursors/grab.cur';
	
	//reset the search result to empty;
	//$("resultContent").innerHTML = '';
 }
function deletePoly(){
	map.DeleteAllPolygons();   
	map.DeleteAllShapes();
	
	myPoints = new Array();
	//alert(myPoints.length);
	tempPoints = null;
	try{
		map.DeleteRoute();
	}
	catch(err){}
	ispoly=0;
	//$("resultContent").innerHTML = '';
}



function doSort(list) {
var inputString ="";
var inputNumbers = list.split(",");
	for (var i = 0; i < inputNumbers.length-1; i++) {
		inputNumbers[i] = parseFloat(inputNumbers[i], 10);
		//alert(inputNumbers[i]);
		
	}

inputNumbers = bubbleSort(inputNumbers, 0, inputNumbers.length - 1);

return inputNumbers;
}


function bubbleSort(inputArray, start, rest) {

	var tempValue;
	for (var i = rest - 1; i >= start;  i--) {
		for (var j = start; j <= i; j++) {
		
		//isNaN(inputNumbers[i])
		if(inputArray[j+1] != ','&& inputArray[j] != ',' ){
				if (inputArray[j+1] < inputArray[j]) {
				tempValue = inputArray[j];
				//alert(tempValue);
				inputArray[j] = inputArray[j+1];
				inputArray[j+1] = tempValue;
		      }
		  }
		}   
	}
//alert('after sort:'+ inputArray);
	return inputArray;
	//alert(inputArray);
}

// JavaScript Document
