﻿Type.registerNamespace("GIRO.Hastinfo.Web.Mapping");

GIRO.Hastinfo.Web.Mapping.VELocationManager = function(element) {
   GIRO.Hastinfo.Web.Mapping.VELocationManager.initializeBase(this, [element]);
   
   this._needPushpinsEventName=null;
   this._onneedpushpinscomplete$delegate=null;
   this._endrequest$delegate=null;
}  

GIRO.Hastinfo.Web.Mapping.VELocationManager.prototype = {
   initialize : function() {
      if(this._endrequest$delete==null)this._endrequest$delegate=Function.createDelegate(this,this._onendrequest);
      Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endrequest$delegate);
   },
   
   dispose : function() {
      if(this._endrequest$delegate!=null)
         {
         Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endrequest$delegate);
         delete this._endrequest$delegate;
         }
      GIRO.Hastinfo.Web.Mapping.VELocationManager.callBaseMethod(this, 'dispose');
   },
   
   add_needpushpinscomplete : function(handler) {
      this.get_events().addHandler('needpushpinscomplete',handler);
   },
   remove_needpushpinscomplete : function(handler) {
      this.get_events().removeHandler('needpushpinscomplete',handler);
   },
   
   get_NeedPushpinsEventName:function(){return(this._needPushpinsEventName);},
   set_NeedPushpinsEventName:function(value){this._needPushpinsEventName=value;},
   
   _makePostBack : function(arg) {
      __doPostBack(this.get_id(),arg);
   },
   
   NeedPushpins : function(originId, destinationId, zoomOnPlan, onNeedPushpinsComplete) {
      this._onneedpushpinscomplete$delegate=onNeedPushpinsComplete;
      
      var mapData=new Object();
      mapData.EventName=this.get_NeedPushpinsEventName();
      mapData.OriginId=originId;
      mapData.DestinationId=destinationId;
      mapData.ZoomOnPlan=zoomOnPlan;

      var arg = Sys.Serialization.JavaScriptSerializer.serialize(mapData);
      this._makePostBack(arg);
   },
   
   _onendrequest : function(sender, args) {
      if(args._dataItems.LocationManager!=null)this._onneedpushpinscomplete(args._dataItems.LocationManager);
   },
   
   _onneedpushpinscomplete : function(args) {
      var handler=this._onneedpushpinscomplete$delegate;
      if (handler!=null)
         {
         var e=Sys.Serialization.JavaScriptSerializer.deserialize(args);
         handler(this,e);
         }
      }
}

GIRO.Hastinfo.Web.Mapping.VELocationManager.registerClass("GIRO.Hastinfo.Web.Mapping.VELocationManager", Sys.UI.Control);
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();