             let newYPos = initialDragOffset + dy
             if newYPos >= 200 {
                 contentView.frame.origin.y = newYPos
+                let newImageYPos = initialImageDragOffset + dy/2
                 if currentImageView != nil {
-                    currentImageView?.frame.origin.y = initialImageDragOffset + dy/2
+                    if newImageYPos > 0 {
+                        println("Can not drag image down when y is 0")
+                    } else {
+                        currentImageView?.frame.origin.y = newImageYPos
+                    }
                 } else {
-                    println("current image view is empty during dragging")
+//                    println("current image view is empty during dragging")
                 }
             }
         } else if sender.state == .Ended {

        contentTopConstraint.constant = 200
        eventHeaderView.setNeedsUpdateConstraints()
        
        UIView.animateWithDuration(1.0, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 1, options: nil, animations: { () -> Void in
            self.view.layoutIfNeeded()
            
            if self.currentImageView != nil {

    }
    
    @IBAction func onHeaderTap(sender: UITapGestureRecognizer) {
        println("did tap detail view")
        let direction = detailsIsOpen ? "down" : "up"
        if detailsIsOpen {
            println("Hide detail view")
            detailsIsOpen = false
            animateHeaderColorChanges(direction)
            animateHeaderViewDown(0)
        } else {
            println("Show detail view")
            detailsIsOpen = true
            animateHeaderColorChanges(direction)
            animateHeaderViewUp()
