diff --git a/frontends/php/img/icon-sprite.svg b/frontends/php/img/icon-sprite.svg
index 5db813a..5f50e9d 100644
--- a/frontends/php/img/icon-sprite.svg
+++ b/frontends/php/img/icon-sprite.svg
@@ -68,4 +68,13 @@
   <path d="M53 735v5.21c-0.88 0.39-1.5 1.26-1.5 2.29 0 1.38 1.12 2.5 2.5 2.5 1.38 0 2.5-1.12 2.5-2.5 0-1.02-0.62-1.9-1.5-2.29V735h3l-4-4 -4 4H53z" fill="#768D99"/>
   <path d="M61.68 695.71c-0.42-0.45-1.11-0.45-1.53 0l-8.45 8.91 -3.84-4.05c-0.42-0.45-1.11-0.45-1.53 0 -0.42 0.45-0.43 1.17 0 1.62l4.6 4.86c0.21 0.22 0.49 0.33 0.77 0.33 0.28 0 0.56-0.11 0.77-0.33l9.21-9.71C62.11 696.88 62.11 696.16 61.68 695.71z" fill="#768D99"/>
   <path d="M98.91 19.85l-0.26 0.27 -0.73-0.73c1.49-1.77 1.43-4.4-0.24-6.07 -1.76-1.76-4.61-1.76-6.36 0 -1.76 1.76-1.75 4.6 0 6.36 1.67 1.67 4.31 1.74 6.07 0.24l0.73 0.73 -0.27 0.27L100.94 24l1.06-1.06L98.91 19.85zM92.38 18.62c-1.17-1.17-1.17-3.07 0-4.24 1.17-1.17 3.07-1.17 4.24 0s1.17 3.07 0 4.24C95.45 19.79 93.55 19.79 92.38 18.62z" fill="#FFF"/>
+  <g id="filter" transform="scale(0.42,0.42) translate(98,1469)" fill="#FFF">
+    <path d="m 9.4349243,99.95309 c -1.7,1 -1.8,3.3 -0.1,3.9 0.6,0.3 9.6999997,0.4 19.9999997,0.2 18.7,-0.2 22.6,-0.9 20,-3.5 -1.3,-1.3 -37.7,-1.8 -39.8999997,-0.6 z"/>
+    <path d="m 11.034924,107.15309 c -1,1.2 0.2,2.9 6.9,9.9 8,8.3 8.1,8.6 7.5,12.4 -0.5,3.3 -0.2,4.4 1.6,6.2 3.8,3.8 5.5,2.3 5.5,-4.7 l 0,-6.2 7,-7.6 c 3.9,-4.2 7.1,-8.2 7.3,-9 0.2,-1 -2.2,-1.2 -12.5,-0.8 -7,0.3 -12.9,0.7 -13.1,0.8 -0.2,0.1 1.1,1.6 2.8,3.3 1.9,1.9 2.8,3.6 2.4,4.6 -1.1,2.8 -2.3,1.9 -8,-5.2 -3.5,-4.4 -5.9,-5.6 -7.4,-3.7 z"/>
+  </g>
+  <polygon id="wideplus" transform="scale(0.5,0.5)" points="117,1336 117,1341 112,1341 112,1345 117,1345 117,1350 121,1350 121,1345 126,1345 126,1341 121,1341 121,1336 " fill="#FFF" />
+  <g id="filter_hide">
+    <use xlink:href="#filter" y="-36" x="0"/>
+    <use xlink:href="#wideplus" y="-36" x="0" transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-431.93921,228.20649)" />
+  </g>
 </svg>
diff --git a/frontends/php/include/classes/html/CFilter.php b/frontends/php/include/classes/html/CFilter.php
index 2588fc5..cd1eec9 100644
--- a/frontends/php/include/classes/html/CFilter.php
+++ b/frontends/php/include/classes/html/CFilter.php
@@ -75,45 +75,6 @@ class CFilter extends CTag {
 		return $this;
 	}
 
-	private function getHeader() {
-		$span = (new CSpan())->setId('filter-arrow');
-
-		if ($this->opened) {
-			$span->addClass(ZBX_STYLE_ARROW_UP);
-			$button = (new CSimpleButton(
-				[_('Filter'), $span]
-			))
-				->addClass(ZBX_STYLE_FILTER_TRIGGER)
-				->addClass(ZBX_STYLE_FILTER_ACTIVE)
-				->setId('filter-mode');
-		}
-		else {
-			$span->addClass(ZBX_STYLE_ARROW_DOWN);
-			$button = (new CSimpleButton(
-				[_('Filter'), $span]
-			))
-				->addClass(ZBX_STYLE_FILTER_TRIGGER)
-				->setId('filter-mode');
-			$this->setAttribute('style', 'display: none;');
-		}
-
-		$button->onClick('javascript:
-			jQuery("#filter-space").toggle();
-			jQuery("#filter-mode").toggleClass("filter-active");
-			jQuery("#filter-arrow").toggleClass("arrow-up arrow-down");
-			updateUserProfile("'.$this->filterid.'", jQuery("#filter-arrow").hasClass("arrow-up") ? 1 : 0);
-			if (jQuery(".multiselect").length > 0 && jQuery("#filter-arrow").hasClass("arrow-up")) {
-				jQuery(".multiselect").multiSelect("resize");
-			}'
-		);
-
-		$switch = (new CDiv())
-			->addClass(ZBX_STYLE_FILTER_BTN_CONTAINER)
-			->addItem($button);
-
-		return $switch;
-	}
-
 	private function getTable() {
 		if (!$this->columns) {
 			return null;
@@ -156,8 +117,12 @@ class CFilter extends CTag {
 	}
 
 	public function startToString() {
-		$ret = $this->getHeader()->toString();
-		$ret .= parent::startToString();
+		if (!$this->opened) {
+			$this->setAttribute('style', 'display: none;');
+		}
+		$this->setAttribute('filterid',$this->filterid)
+			->setAttribute('messages',_('Show Filter Options|Hide Filter Options'));
+		$ret = parent::startToString();
 		return $ret;
 	}
 
diff --git a/frontends/php/include/defines.inc.php b/frontends/php/include/defines.inc.php
index 58fda12..f7628f6 100644
--- a/frontends/php/include/defines.inc.php
+++ b/frontends/php/include/defines.inc.php
@@ -1106,10 +1106,7 @@ define('ZBX_STYLE_DRAG_ICON', 'drag-icon');
 define('ZBX_STYLE_DRAG_DROP_AREA', 'drag-drop-area');
 define('ZBX_STYLE_TABLE_FORMS_SEPARATOR', 'table-forms-separator');
 define('ZBX_STYLE_FILTER_CONTAINER', 'filter-container');
-define('ZBX_STYLE_FILTER_BTN_CONTAINER', 'filter-btn-container');
 define('ZBX_STYLE_FILTER_FORMS', 'filter-forms');
-define('ZBX_STYLE_FILTER_TRIGGER', 'filter-trigger');
-define('ZBX_STYLE_FILTER_ACTIVE', 'filter-active');
 define('ZBX_STYLE_FLOAT_LEFT', 'float-left');
 define('ZBX_STYLE_FORM_INPUT_MARGIN', 'form-input-margin');
 define('ZBX_STYLE_FORM_NEW_GROUP', 'form-new-group');
diff --git a/frontends/php/js/gtlc.js b/frontends/php/js/gtlc.js
index 3cdffa3..8e35269 100644
--- a/frontends/php/js/gtlc.js
+++ b/frontends/php/js/gtlc.js
@@ -82,11 +82,21 @@ var timeControl = {
 					obj.time.isNow = false;
 				}
 
+				if (!isset('origstarttime', obj.time)) {
+					obj.time.origstarttime = isset('starttime', obj.time) ? obj.time.starttime : null;
+				} else {
+					obj.time.starttime = obj.time.origstarttime;
+				}
 				obj.time.starttime = (!isset('starttime', obj.time) || is_null(obj.time['starttime']))
 					? obj.time.endtime - 3 * ((obj.time.period < 86400) ? 86400 : obj.time.period)
 					: nowDate.setZBXDate(obj.time.starttime) / 1000;
 
-				obj.time.usertime = (!isset('usertime', obj.time))
+				if (!isset('origusertime', obj.time)) {
+					obj.time.origusertime = isset('usertime', obj.time) ? obj.time.usertime : null;
+				} else {
+					obj.time.usertime = obj.time.origusertime;
+				}
+				obj.time.usertime = (!isset('usertime', obj.time) || is_null(obj.time['usertime']))
 					? obj.time.endtime
 					: nowDate.setZBXDate(obj.time.usertime) / 1000;
 
diff --git a/frontends/php/js/init.js b/frontends/php/js/init.js
index 2a71589..8660946 100644
--- a/frontends/php/js/init.js
+++ b/frontends/php/js/init.js
@@ -150,4 +150,36 @@ jQuery(function($) {
 			window.location = button.data('url');
 		}
 	})
+
+	$.fn.checkClass = function( class_name, set_to ) {
+		if (set_to) $(this).addClass(class_name); else $(this).removeClass(class_name);
+		return this;
+	};
+
+	if ($('#filter-space').length > 0) {
+		// create & add btn-filter
+		$('<button>').attr('id','filter-mode').addClass('btn-filter').appendTo(
+				$('<li>').appendTo($('.header-title ul')[0])
+		).bind('update_view', function() {
+			var on = $('#filter-space').is(':visible');
+			$(this).checkClass('on',on).attr('title',$('#filter-space').attr('messages').split('|')[on ? 1 : 0]);
+			return this;
+		}).click(function(){
+			$('#filter-space').toggle();
+			var on = $('#filter-space').is(':visible');
+			$(this).trigger('update_view');
+			updateUserProfile($('#filter-space').attr('filterid'), on ? 1 : 0);
+			if (!on) return false;
+			if ($('.multiselect').length > 0) $('.multiselect').multiSelect('resize');
+			if ($('#scrollbar_cntr').length < 1 || $('#scrollbar_cntr').data('rebuilded')) return false;
+			if ('scrollbar' in timeControl.objectList) timeControl.objectList['scrollbar'].processed = 0; // TODO standardize id of time filter
+			if ('scroll_events_id' in timeControl.objectList) timeControl.objectList['scroll_events_id'].processed = 0;
+			timeControl.processObjects();
+			$('#scrollbar_cntr').data('rebuilded',true);
+			return false;
+		}).trigger('update_view');
+	};
+
+	$('.btn-max, .btn-min').parents('li').appendTo($('.header-title ul')[0]); /* move fullscreen-btn to right */
+
 });
diff --git a/frontends/php/styles/blue-theme.css b/frontends/php/styles/blue-theme.css
index e78044d..daf86be 100644
--- a/frontends/php/styles/blue-theme.css
+++ b/frontends/php/styles/blue-theme.css
@@ -602,9 +602,6 @@ footer, .footer {
   overflow-x: auto;
   position: relative; }
 
-.filter-btn-container {
-  text-align: center; }
-
 .filter-container {
   padding: 15px 0 10px 0;
   margin: 0 0 10px 0;
@@ -1193,29 +1190,10 @@ button {
   -moz-transition: opacity 0.2s ease-out;
   transition: opacity 0.2s ease-out; }
 
-.filter-trigger {
-  position: relative;
-  padding-right: 21px;
-  min-width: 94px;
-  -webkit-border-radius: 2px 2px 0 0;
-  -moz-border-radius: 2px 2px 0 0;
-  border-radius: 2px 2px 0 0; }
-  .filter-trigger.filter-active {
-    color: #1f2c33;
-    background-color: #fff;
-    border: 1px solid #dfe4e7;
-    border-bottom: none;
-    margin-bottom: -1px; }
-    .filter-trigger.filter-active .arrow-up {
-      position: absolute;
-      top: 45%;
-      margin: 0 0 0 6px;
-      border-bottom-color: #1f2c33; }
-  .filter-trigger .arrow-down {
-    position: absolute;
-    top: 45%;
-    margin: 0 0 0 6px;
-    border-top-color: #fff; }
+.btn-filter {
+  background: #0275b8 url("../img/icon-sprite.svg") no-repeat scroll -42px -655px; }
+.btn-filter.on {
+  background-position: -42px -619px; }
 
 .btn-conf {
   background: #0275b8 url(../img/icon-sprite.svg) no-repeat -7px -187px; }
diff --git a/frontends/php/styles/dark-theme.css b/frontends/php/styles/dark-theme.css
index a030903..867ca43 100644
--- a/frontends/php/styles/dark-theme.css
+++ b/frontends/php/styles/dark-theme.css
@@ -617,9 +617,6 @@ footer, .footer {
   overflow-x: auto;
   position: relative; }
 
-.filter-btn-container {
-  text-align: center; }
-
 .filter-container {
   padding: 15px 0 10px 0;
   margin: 0 0 10px 0;
@@ -1208,29 +1205,10 @@ button {
   -moz-transition: opacity 0.2s ease-out;
   transition: opacity 0.2s ease-out; }
 
-.filter-trigger {
-  position: relative;
-  padding-right: 21px;
-  min-width: 94px;
-  -webkit-border-radius: 2px 2px 0 0;
-  -moz-border-radius: 2px 2px 0 0;
-  border-radius: 2px 2px 0 0; }
-  .filter-trigger.filter-active {
-    color: #f2f2f2;
-    background-color: #2b2b2b;
-    border: 1px solid #303030;
-    border-bottom: none;
-    margin-bottom: -1px; }
-    .filter-trigger.filter-active .arrow-up {
-      position: absolute;
-      top: 45%;
-      margin: 0 0 0 6px;
-      border-bottom-color: #f2f2f2; }
-  .filter-trigger .arrow-down {
-    position: absolute;
-    top: 45%;
-    margin: 0 0 0 6px;
-    border-top-color: #fff; }
+.btn-filter {
+  background: #69808d url("../img/icon-sprite.svg") no-repeat scroll -42px -655px; }
+.btn-filter.on {
+  background-position: -42px -619px; }
 
 .btn-conf {
   background: #69808d url(../img/icon-sprite.svg) no-repeat -7px -187px; }
