GMapPanoramaWindow=function(a){if(!a.gmap){throw"gimmi GMap2 object!"}this.gmap=a.gmap;this.enabled=(a.enabled)?a.enabled:true;this.panoView;this.panoStreetOverlay;this.walker;this.yaw=0;this.pitch=-10;this.zoom=0;this.panoclient=new GStreetviewClient();this.imgSwapHandler=a.imgswaphandler;this.onNewPanorama=a.onnewpanorama;this.onWalkerDragStarted=a.onWalkerDragStarted;this.onWalkerDragEnded=a.onWalkerDragEnded;GMapPanoramaWindow.superclass.constructor.call(this,arguments);this.commented1=false;this.commented2=false;this.commented3=false;this.commented4=false};Ext.extend(GMapPanoramaWindow,Ext.Window,{initComponent:function(b){var a={id:"panoWnd",title:"パノラマdeGo!",closeAction:"hide",border:true,resizable:true,collapsible:true,width:260,height:260,x:250,y:140,collapsed:true};Ext.apply(this,a);GMapPanoramaWindow.superclass.initComponent.call(this)},onRender:function(b,a){GMapPanoramaWindow.superclass.onRender.call(this,b,a);this.getPanorama();this.panoView.checkResize()},getPanorama:function(){if(!this.panoView){if(!this.body.dom){throw"window has no element yet."}this.panoView=new GStreetviewPanorama(this.body.dom,{pov:{yaw:this.yaw,pitch:this.pitch,zoom:this.zoom}});if(this.onNewPanorama){this.onNewPanorama(this.panoView)}GEvent.bind(this.panoView,"yawchanged",this,function(a){var b=a.toFixed(0);b=(b/10).toFixed(0)*10;this.yaw=b;this.swapWalker(this.createWalker(this.walker.getLatLng(),b));this.panoView.checkResize()});GEvent.bind(this.panoView,"pitchchanged",this,function(a){this.pitch=a});GEvent.bind(this.panoView,"zoomchanged",this,function(a){this.zoom=a});GEvent.bind(this.panoView,"initialized",this,function(a){if(this.walker){this.walker.setLatLng(a.latlng);this.panoView.checkResize()}});GEvent.bind(this.panoView,"error",this,function(b){var c="";if(b==500){c=("サーバーが応答しませんでした")}else{if(b==600){c=("この場所は、パノラマデータがありません");var a=Ext.get("horizontal_container");if(!a.isVisible()){a.setVisible(true)}else{a.setVisible(false)}}}if(b!=200){Ext.Msg.show({title:"パノラマdeGo",msg:c,buttons:Ext.MessageBox.OK})}})}this.panoView.checkResize();return this.panoView},toggleStreetOverlay:function(){if(!this.panoStreetOverlay){this.panoStreetOverlay=new GStreetviewOverlay();this.gmap.addOverlay(this.panoStreetOverlay)}else{this.gmap.removeOverlay(this.panoStreetOverlay);this.panoStreetOverlay=null}},show:function(b,c){GMapPanoramaWindow.superclass.show.call(this,b,c);if(!this.panoStreetOverlay){this.toggleStreetOverlay()}var a=this.getPanorama()},afterShow:function(){GMapPanoramaWindow.superclass.afterShow.call(this)},afterRender:function(){var a=this.getSize();Ext.applyIf(this,a);GMapPanoramaWindow.superclass.afterRender.call(this)},afterHide:function(a){GMapPanoramaWindow.superclass.afterHide.call(this,arguments);if(this.panoStreetOverlay){this.toggleStreetOverlay()}if(this.walker){this.walker.hide()}if(myself){myself.setPanoramaVisibility();myself.setDriving(false)}},onResize:function(a,b){GMapPanoramaWindow.superclass.onResize.call(this,a,b);if(this.panoView){this.panoView.checkResize()}},setSize:function(c,a,b){GMapPanoramaWindow.superclass.setSize.call(this,c,a,b);if(this.panoView){this.panoView.checkResize()}},createWalker:function(c,d){if(null==d){d=this.yaw}var b=new GIcon();b.image="/Hades/pages/images/singlemap/icons/"+d+".png";b.iconSize=new GSize(80,80);b.iconAnchor=new GPoint(35,50);b.infoWindowAnchor=new GPoint(31,5);b.infoShadowAnchor=new GPoint(25,13);var a=new GMarker(c,{icon:b,draggable:true,dragCrossMove:true,clickable:false});GEvent.addListener(a,"click",function(){myself.map.closeInfoWindow();var e=Ext.get("horizontal_container");if(myself.windowFlag>0){myself.generateRoute(myself.pano.getWalker().getLatLng(),myself.markingpoint.getLatLng())}});GEvent.bind(a,"dragend",this,this.setCameraLocation);GEvent.bind(a,"dragend",this,function(){if(myself.windowFlag>0){myself.generateRoute(myself.pano.getWalker().getLatLng(),myself.markingpoint.getLatLng())}if(myself.isDriving){myself.stopDriving();var e=new Ext.util.DelayedTask();e.delay(1000,function(){myself.stopDriving()},this);if(!myself.isDriving){myself.windowFlagData.update('<img src="/Hades/pages/images/singlemap/icons/go.gif" />')}}myself.map.closeInfoWindow()});if(this.onWalkerDragStarted){GEvent.bind(a,"dragstart",this,this.onWalkerDragStarted)}if(this.onWalkerDragEnded){GEvent.bind(a,"dragend",this,this.onWalkerDragEnded)}return a},getNearestPanorama:function(c,b,a){if(this.panoclient){this.panoclient.getNearestPanorama(c,b.createDelegate(a))}},setCameraLocation:function(a){this.getNearestPanorama(a,function(b){if(b.code==200){this.getPanorama().setLocationAndPOV(b.location.latlng,{yaw:this.yaw,pitch:this.pitch,zoom:this.zoom});if(this.walker){this.walker.setLatLng(b.location.latlng)}}else{}},this)},swapWalker:function(b){var a=false;if(this.walker){this.gmap.removeOverlay(this.walker);a=this.gmap.getInfoWindow().isHidden()}this.walker=b;this.gmap.addOverlay(this.walker);if(a){}if(this.imgSwapHandler){this.imgSwapHandler(this.walker)}},putWalker:function(a){this.swapWalker(this.createWalker(a));this.setCameraLocation(a);return this.walker},getWalker:function(){return this.walker}});
