var msmap = null;
var pinlat;
var pinlon;	
var options;
var directions=false;
var area_id;

function GetMap(lat,lon){
	pinlat=lat;
	pinlon=lon;
	    // START FIX FOR FF2.0
    var ffv = 0;
    var ffn = "Firefox/"
    var ffp = navigator.userAgent.indexOf(ffn);
    if (ffp != -1) ffv = parseFloat(navigator.userAgent.substring(ffp + ffn.length));
    // If we're using Firefox 1.5 or above override 
    // the Virtual Earth drawing functions to use SVG
    if (ffv >= 1.5) {
      Msn.Drawing.Graphic.CreateGraphic=function(f,b) 
        { return new Msn.Drawing.SVGGraphic(f,b) }
    }
    // END FIX FOR FF2.0    
    msmap = new VEMap('myMap');
	
	msmap.SetCredentials("Apz_DfjBbN_ROjfwqLn36vPKW1ILklZI5UZFham-ljB3XrNlM2yh0gtGZbDR1seR");
	msmap.SetDashboardSize(VEDashboardSize.Normal);
	msmap.LoadMap(new VELatLong(lat, lon), 10 ,'r' ,false);
	msmap.SetScaleBarDistanceUnit(VEDistanceUnit.Kilometers);  
	msmap.AttachEvent("onobliqueenter", OnObliqueEnterHandler);
	//msmap.AttachEvent("onmouseover", mouseOverHandler);
	msmap.AttachEvent("onmousedown",MouseHandler);
    msmap.AttachEvent("onmouseup",MouseHandler);
    msmap.AttachEvent("onmousemove",MouseHandler);
	
}   

function AddPushpin(title,description){
          var shape = new VEShape(VEShapeType.Pushpin, msmap.GetCenter());
          shape.SetTitle(title);
          shape.SetDescription(description);
          msmap.AddShape(shape);
      }
function OnObliqueEnterHandler(){
    if(msmap.IsBirdseyeAvailable() && directions==false){
		var TopOfNeedle = new VELatLong(pinlat, pinlon); 
		msmap.SetBirdseyeScene(TopOfNeedle);
    }
	else return;
}

function showdirections(startpoint){
	directions=true;
	
	if(startpoint == undefined)
		startpoint = $("#selectlocation option:selected").val();
		
	var coordinates = new Array();
	coordinates = startpoint.split(',');
	//area_id=coordinates[2];
	//xajax_load_msmaps_subareas(coordinates[2]);

	msmap.SetMapStyle(VEMapStyle.Road);
	options = new VERouteOptions();
	options.UseMWS=true;
	options.DistanceUnit = VERouteDistanceUnit.Kilometer;
	options.RouteCallback = onGotRoute;
	
	msmap.GetDirections([new VELatLong(coordinates[0], coordinates[1]), new VELatLong(pinlat, pinlon)],options);
	
	var oDriveFrom = new VELatLong(coordinates[0],coordinates[1]);
	var oDriveTo = new VELatLong(pinlat, pinlon);
	var oDriveVia = '';
	var oLocale = 'el';
	var zoom = 9;
	var link = 'http://www.guidemap.gr/modules/addresses/driveme.php?lat=' + pinlat + '&lon=' + pinlon + '&z=' + zoom + '&mType=';
	link += '&driveFrom=' + oDriveFrom;
	link += '&driveTo=' + oDriveTo;
	link += '&driveVia=' + oDriveVia;
	link += '&locale=' + oLocale;
	
	
	var oLink = document.getElementById("link");
	oLink.innerHTML = '<a target="_blank" href="' + link + '">'+'Δείτε τις οδηγίες με google maps'+'</a>';
	
}	
function savelocation(location_id){
area_id=location_id;

}
/*function mouseOverHandler(e){
	  shape = msmap.GetShapeByID(e.elementID);
	//alert(shape['Title']);
    if (shape.GetTitle()=="Start"){
       shape
           
    }
}*/
 
function MouseHandler(e)
{
	try{ 
		 if (e.eventName == "onmousedown" && e.elementID != null)
		 {
			dragShape = msmap.GetShapeByID(e.elementID);
			if(dragShape.GetTitle() == 'Start')
				return true;
			else return false;
		 }else if (e.eventName == "onmouseup")
		 {
			newcoords = dragShape.Latitude+','+dragShape.Longitude;
			showdirections(newcoords);
			dragShape = null;
		 }else if (e.eventName == "onmousemove" && dragShape != null && dragShape.GetTitle() == 'Start')
		 {
			var x = e.mapX;
			var y = e.mapY;
			pixel = new VEPixel(x, y);
			var LL = msmap.PixelToLatLong(pixel);
			dragShape.SetPoints(LL);
			//alert(dragShape.toSource());
			
			return true; // prevent the default action
		 }
	}
	catch(e){};
} 
	
	
