                     self.view.sendSubview(toBack: self.imageView)
                 })
             }
+    
+            
+            showMetadataHUD()
+            showMap()
+            
+            // ADD menu recognizer for escaping
+      //      var m = UITapGestureRecognizer(target: self, action: #selector(menuPress(_:)) )
+            
+
+            view.addGestureRecognizer(menuRecognizer!)
+            
+            
+        case .standard:
+            print("standard display")
+            
+            // we don´t have a location
+            // just send back to NO overlay display
+            if(getAsset().location == nil){
+                print("no GPS available. send back to normal")
+                // go to previous mode mode
+                HUDMode = .none
+                hideMetadataHUD()
+                hideMap()
+                
+                // REMOVE MENU RECOGNIZER
+                view.removeGestureRecognizer(menuRecognizer!)
+                return
+            }
+            
+
+
+            
+            // next mode
+            HUDMode = .fullmap
+            
+            // backup the original location of the main image
+            mainImageFrameBackup = imageView.frame
+            
+
+            
+
+            
+            
+            // bring to front
+            self.view.bringSubview(toFront: self.imageView)
+            UIView.animate(withDuration: 0.5, animations: { () -> Void in
+                self.imageView.frame = CGRect(x: 0 , y: 20, width: 350  ,  height: 250  )
+                self.imageView.layer.shadowOffset = CGSize(width:15, height:15);
+                self.imageView.layer.shadowRadius = 5;
+                self.imageView.layer.shadowOpacity = 0.5;
+                
+                
+            })
+            
+            
+            
+            // hideMetadataHUD()
+            
+            mapView.isUserInteractionEnabled = true
+            mapView.isScrollEnabled = true
+            mapView.isZoomEnabled = true
+            
+            
+            /*
+             for rec in mapRecoginzerArray!{
+             
+             mapView.removeGestureRecognizer(rec)
+             }
+             */
+            
+            UIView.animate(withDuration: 0.5, animations: { () -> Void in
+                self.mapView.frame = CGRect(x: 0 , y: 0, width: self.screenWidth  ,  height: self.screenHeight  )
+                //    self.mapView.layoutIfNeeded()
+            })
+            
+            
+            
+        case .fullmap:
+            print("fullmap")
+            
+            // set to none as follower
+            // fade out mapview
+            // Back to basics
+            HUDMode = .none
+            
+            // restore the original location of the main image
+
+            if(getAsset().location != nil && mainImageFrameBackup != nil ){
+                // NILPOINTER BY MAINFRAME
+                UIView.animate(withDuration: 0.5, animations: { () -> Void in
+                    self.imageView.frame = self.mainImageFrameBackup!  // ERROR: MIGHT BE NIL!!!
+                    self.imageView.layer.shadowOffset = CGSize(width:15, height:15);
+                    self.imageView.layer.shadowRadius = 0;
+                    self.imageView.layer.shadowOpacity = 0.0;
+                    
+                }, completion: {
+                    (ended) -> Void in
+                    // send to back
+                    self.view.sendSubview(toBack: self.imageView)
+                })
+            }
 
             
             

            HUDMode = .standard
            
            
            
            
            showMetadataHUD()
            showMap()
            
            // ADD menu recognizer for escaping
      //      var m = UITapGestureRecognizer(target: self, action: #selector(menuPress(_:)) )
            

            view.addGestureRecognizer(menuRecognizer!)
            
            
        case .standard:
            print("standard display")
            
            // we don´t have a location
            // just send back to NO overlay display
            if(getAsset().location == nil){
                print("no GPS available. send back to normal")
                // go to previous mode mode
                HUDMode = .none
                hideMetadataHUD()
                hideMap()
                
                // REMOVE MENU RECOGNIZER
                view.removeGestureRecognizer(menuRecognizer!)
                return
            }
            


            
            // next mode
            HUDMode = .fullmap
            
            // backup the original location of the main image
            mainImageFrameBackup = imageView.frame
            

            

            
            
            // bringt to front
            self.view.bringSubview(toFront: self.imageView)
            UIView.animate(withDuration: 0.5, animations: { () -> Void in
                self.imageView.frame = CGRect(x: 0 , y: 20, width: 350  ,  height: 250  )
                self.imageView.layer.shadowOffset = CGSize(width:15, height:15);
                self.imageView.layer.shadowRadius = 5;
                self.imageView.layer.shadowOpacity = 0.5;
                
                
            })
            
            
            
            // hideMetadataHUD()
            
            mapView.isUserInteractionEnabled = true
            mapView.isScrollEnabled = true
            mapView.isZoomEnabled = true
            
            
            /*
             for rec in mapRecoginzerArray!{
             
             mapView.removeGestureRecognizer(rec)
             }
             */
            
            UIView.animate(withDuration: 0.5, animations: { () -> Void in
                self.mapView.frame = CGRect(x: 0 , y: 0, width: self.screenWidth  ,  height: self.screenHeight  )
                //    self.mapView.layoutIfNeeded()
            })
            
            
            
        case .fullmap:
            print("fullmap")
            
            // set to none as follower
            // fade out mapview
            // Back to basics
            HUDMode = .none
            
            // restore the original location of the main image

            if(getAsset().location != nil && mainImageFrameBackup != nil ){
                // NILPOINTER BY MAINFRAME
                UIView.animate(withDuration: 0.5, animations: { () -> Void in

        print("menu")
        // now go back an remove the menu listener
        // always go back
        
        if(HUDMode == .fullmap){
            // next HUDmode should be standard
            HUDMode = .none
            
            toggleHUDState()
                return
        }
        
        // ACHTUNG: kann in fullmap gehen obwohl das hauptbild noch nie geladen wurde. puh puh puh
            HUDMode = .fullmap
