     }
     
     func handleRevealGestureStateChangedWithRecognizer(recognizer: UIPanGestureRecognizer) {
-        
+        let translation: CGFloat = recognizer.translationInView(self.leftView!).y
+        //self.leftView!.top =
     }
     
     func handleRevealGestureStateEndedWithRecognizer(recognizer: UIPanGestureRecognizer) {

        self.sessionViews = Dictionary<Int, AirbnbSessionView>()
        self.currentIndexSession = 0
        
        self.lastIndexInSession = Dictionary<Int, AirbnbSessionView>()
        //self.lastIndexInSession[0] = nil
        self.currentIndexPath = NSIndexPath(forItem: 0, inSection: 0)
        

        
        if (indexPath? != nil && indexPath?.row != kIndexPathOutMenu.row) {
            //self.lastIndexInSession[indexPath?.section] = indexPath?.row
            self.saveViewControler(controller!, atIndexPath: indexPath!)
        }
        
        self.addChildViewController(self.fontViewController!)
        let controllerView: UIView = self.fontViewController!.view
        controllerView.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
        controllerView.frame = self.view.bounds
        self.view.addSubview(controllerView)
        self.fontViewController?.didMoveToParentViewController(self)
    }
    
    // storyboard support
    
    override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
        if segue is AirViewControllerSegue && sender? == nil {
            var nextIndexPath: NSIndexPath = self.currentIndexPath!
            if segue?.identifier == PHSegueRootIdentifier {
                if self.delegate != nil && self.delegate?.respondsToSelector("indexPathDefaultValue") != nil {
                    //nextIndexPath = self.delegate.indexPathDefaultValue()??
                }
            }
            var segu: AirViewControllerSegue = segue? as AirViewControllerSegue
            segu.peformHandler = {(rvc_segue: AirViewControllerSegue, svc: UIViewController, dvc: UIViewController) -> Void in
                self.bringViewControllerToTop(dvc, indexPath: nextIndexPath)
            }
        }
    }
    
    // ContentView
    
    func contentViewDidTap(recognizer: UITapGestureRecognizer) {
        if self.airImageView?.tag == 1 {
            
        }
    }
    
    // Gesture Delegate

    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
        if isAnimation == false {
            return false
        }
        return true
    }
    
    // AirImageView gesture
    
    func handleSwipeOnAirImageView(swipe: UISwipeGestureRecognizer) {
        self.hideAirViewOnComplete({() -> Void in
            self.bringViewControllerToTop(self.fontViewController, indexPath: self.currentIndexPath)
        })
    }
    
    func handleTapOnAirImageView(swipe: UISwipeGestureRecognizer) {
        self.hideAirViewOnComplete({() -> Void in
            self.bringViewControllerToTop(self.fontViewController, indexPath: self.currentIndexPath)
        })
    }
    
    // Gesture Based Reveal
    
    func handleRevealGesture(recognizer: UIPanGestureRecognizer) {
        if self.sessionViews?.count == 0 && self.sessionViews?.count == 1 {
            return
        }
        
        switch recognizer.state {
        case UIGestureRecognizerState.Began:
            self.handleRevealGestureStateBeganWithRecognizer(recognizer)
            break
        case UIGestureRecognizerState.Changed:
            self.handleRevealGestureStateChangedWithRecognizer(recognizer)
            break
        case UIGestureRecognizerState.Ended:
            self.handleRevealGestureStateEndedWithRecognizer(recognizer)
            break
        case UIGestureRecognizerState.Cancelled:
            self.handleRevealGestureStateCancelledWithRecognizer(recognizer)
            break
        default:
            break
        }
    }
    
    func handleRevealGestureStateBeganWithRecognizer(recognizer: UIPanGestureRecognizer) {
