 	# Is Active
 	active: (active) =>
 		$wrap = @$getWrapper()
-		if active is true
-			$wrap.addClass('slidescrollpanel-active').show()
-			return @
-		else if active is false
-			$wrap.removeClass('slidescrollpanel-active').hide()
-			return @
+		if active?
+			if active is true
+				$wrap.addClass('slidescrollpanel-active').show()
+			else if active is false
+				$wrap.removeClass('slidescrollpanel-active').hide()
 		else
 			active = $wrap.hasClass('slidescrollpanel-active')
 			return active
 
-	# Add Interval
-	# Necessary for non-touch devices as they do not have touch events
-	# TODO: why? we have mouseleave, isn't that good enough?
-	addInterval: =>
-		# If we are a touch device, then we do not need the helper as we have touch events instead!
-		return  if @isTouchDevice()
-
-		# We are on a non-touch device, so need the helper as we don't have touch events!
-		@clearInterval()
-		@interval = setInterval(@leavePanelHelper, 2000)
-
-		# Chain
-		@
-
-	# Clear Interval
-	clearInterval: =>
-		if @interval?
-			clearInterval(@interval)
-			@interval = null
-		@
+		# Chain
+		return @
 
 	# Resize
 	resize: =>


		$wrap.stop(true,false).animate @getShowProps(), 400, =>
			$(window).trigger('resize')
			@addInterval()
			return next?()

		# Chain

		# Chain
		@

	# Enter Panel Helper
	enterPanelHelper: (event) =>
		# Prepare
		active = @active()

		# Handle
		console.log 'enter', active, event.currentTarget.className, event
		if active
			@enable(event)

		# Chain
		@

	# Enable
	enable: (event) =>
		# Prepare
		$wrap = @$getWrapper()
		$content = @$getContent()

		# Disable
		if @isTouchDevice()
			currentOffset = $wrap.data('currentOffset')
			if currentOffset
				positionOffset =
					left: 0
				console.log 'enable:', JSON.stringify(currentOffset), JSON.stringify(positionOffset)
				$wrap.css(positionOffset)
				$wrap.prop(currentOffset)
				$wrap.data('currentOffset', null)
		else
			$wrap.css('pointer-events': 'auto')

		# Kill Timer
		if @leavePanelHelperTimer
			clearTimeout(@leavePanelHelperTimer)
			@leavePanelHelperTimer = null

		# Chain
		@

	# Disable
	disable: (event) =>
		# Prepare
		$wrap = @$getWrapper()
		$content = @$getContent()

		# Disable
		if @isTouchDevice()
			showOffset = @getShowProps()
			currentOffset =
				scrollLeft: @getOffset()
			positionOffset =
				left: parseInt($content.offset().left, 10) - parseInt($wrap.offset().left, 10)
			console.log 'disable:', currentOffset, positionOffset, showOffset
			$wrap.css(positionOffset)
			$wrap.prop(showOffset)
			$wrap.data('currentOffset', currentOffset)
		else
			$wrap.css('pointer-events': 'none')
			$content.css('pointer-events': 'auto')

		# Chain
		@

	# Leave Panel Helper
	leavePanelHelperTimer: null
	leavePanelHelper: (event,opts={}) =>
		# Prepare
		active = @active()

		# Handle
		console.log 'leave', active, event.currentTarget.className, event
		if active
			if @isTouchDevice()
				@disable()
			else
				# Kill Timer
				if @leavePanelHelperTimer
					clearTimeout(@leavePanelHelperTimer)
					@leavePanelHelperTimer = null

				# Create Timer
				if opts.waited isnt true
					@leavePanelHelperTimer = setTimeout(
						=> @leavePanelHelper(event,{waited:true})
						1000
					)
				else
					@disable()


			###
			offset = @getOffset()
			size =  @getSize()

			# Fetch values
			if @getInverse()
				shown = offset is 0
				over  = offset < size/2
			else
				shown = offset is size
				over  = offset > size/2

			# Same
			if shown
