Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Apr 2009 13:30:03 GMT
From:      Jim Riggs <ports@christianserving.org>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/133164: [PATCH] net-mgmt/zabbix: update to 1.6.3
Message-ID:  <200904011330.n31DU3iT013757@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/133164; it has been noted by GNATS.

From: Jim Riggs <ports@christianserving.org>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/133164: [PATCH] net-mgmt/zabbix: update to 1.6.3
Date: Wed, 01 Apr 2009 08:10:01 -0500

 This is a multi-part message in MIME format.
 --------------030801060004030106010301
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 This includes the requested patch.
 
 --------------030801060004030106010301
 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0";
  name="zabbix-1.6.3,1.patch"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="zabbix-1.6.3,1.patch"
 
 ===> Generating patch
 ===> Viewing diff with more
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/Makefile /root/portwork/zabbix/Makefile
 --- /usr/ports/net-mgmt/zabbix/Makefile	2009-03-23 10:06:19.000000000 -0500
 +++ /root/portwork/zabbix/Makefile	2009-03-28 13:27:00.000000000 -0500
 @@ -6,8 +6,7 @@
  #
  
  PORTNAME=	zabbix
 -PORTVERSION=	1.6.2
 -PORTREVISION=	1
 +PORTVERSION=	1.6.3
  PORTEPOCH=	1
  CATEGORIES=	net-mgmt
  MASTER_SITES=	SF
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/distinfo /root/portwork/zabbix/distinfo
 --- /usr/ports/net-mgmt/zabbix/distinfo	2009-02-26 05:59:18.000000000 -0600
 +++ /root/portwork/zabbix/distinfo	2009-03-28 12:52:43.000000000 -0500
 @@ -1,3 +1,3 @@
 -MD5 (zabbix-1.6.2.tar.gz) = 33da3661868a04042c596a819896446f
 -SHA256 (zabbix-1.6.2.tar.gz) = e982419f45b2ac814e804a1a340c7e563fe5230bb5295b17e5767c89fa25550e
 -SIZE (zabbix-1.6.2.tar.gz) = 8229465
 +MD5 (zabbix-1.6.3.tar.gz) = e0852158804ff548faf3a1c1344ffc0d
 +SHA256 (zabbix-1.6.3.tar.gz) = e29428f8c7f7d56d189077fb29605b084b7c10c02cb04671923f686ef5299a31
 +SIZE (zabbix-1.6.3.tar.gz) = 8323979
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/files/patch-USH-162.1 /root/portwork/zabbix/files/patch-USH-162.1
 --- /usr/ports/net-mgmt/zabbix/files/patch-USH-162.1	2009-03-23 10:06:19.000000000 -0500
 +++ /root/portwork/zabbix/files/patch-USH-162.1	1969-12-31 18:00:00.000000000 -0600
 @@ -1,135 +0,0 @@
 -Index: include/validate.inc.php
 -===================================================================
 ---- frontends/php/include/validate.inc.php	(revision 6592)
 -+++ frontends/php/include/validate.inc.php	(revision 6593)
 -@@ -198,19 +198,21 @@
 - 		return $ret;
 - 	}
 - 
 --	function	calc_exp($fields,$field,$expression){
 -+	function calc_exp($fields,$field,$expression){
 - //SDI("$field - expression: ".$expression);
 - 
 --		if(zbx_strstr($expression,"{}") && !isset($_REQUEST[$field]))
 -+		if(zbx_strstr($expression,'{}') && !isset($_REQUEST[$field]))
 - 			return FALSE;
 - 
 --		if(zbx_strstr($expression,"{}") && !is_array($_REQUEST[$field]))
 --			$expression = str_replace("{}",'$_REQUEST["'.$field.'"]',$expression);
 -+		if(zbx_strstr($expression,'{}') && !is_array($_REQUEST[$field]))
 -+			$expression = str_replace('{}','$_REQUEST["'.$field.'"]',$expression);
 - 
 --		if(zbx_strstr($expression,"{}") && is_array($_REQUEST[$field])){
 -+		if(zbx_strstr($expression,'{}') && is_array($_REQUEST[$field])){
 - 			foreach($_REQUEST[$field] as $key => $val){
 --				$expression2 = str_replace("{}",'$_REQUEST["'.$field.'"]["'.$key.'"]',$expression);
 --				if(calc_exp2($fields,$field,$expression2)==FALSE)
 -+				if(!ereg('^[a-zA-Z0-9_]+$',$key)) return FALSE;
 -+
 -+				$expression2 = str_replace('{}','$_REQUEST["'.$field.'"]["'.$key.'"]',$expression);
 -+				if(calc_exp2($fields,$field,$expression2)==FALSE) 
 - 					return FALSE;
 - 			}	
 - 			return TRUE;
 -@@ -219,7 +221,7 @@
 - 		return calc_exp2($fields,$field,$expression);
 - 	}
 - 
 --	function	unset_not_in_list(&$fields){
 -+	function unset_not_in_list(&$fields){
 - 		foreach($_REQUEST as $key => $val){
 - 			if(!isset($fields[$key])){
 - 				unset_request($key,'unset_not_in_list');
 -@@ -382,7 +384,7 @@
 - 		}
 - 	}
 - 
 --	function	check_field(&$fields, &$field, $checks){
 -+	function check_field(&$fields, &$field, $checks){
 - 		list($type,$opt,$flags,$validation,$exception)=$checks;
 - 
 - 		if($flags&P_UNSET_EMPTY && isset($_REQUEST[$field]) && $_REQUEST[$field]==''){
 -@@ -473,9 +475,7 @@
 - 		include_once "include/page_footer.php";
 - 	}
 - 	
 --	function	check_fields(&$fields, $show_messages=true){
 --
 --		global	$_REQUEST;
 -+	function check_fields(&$fields, $show_messages=true){
 - 		global	$system_fields;
 - 
 - 		$err = ZBX_VALID_OK;
 -Index: locales.php
 -===================================================================
 ---- frontends/php/locales.php	(revision 6592)
 -+++ frontends/php/locales.php	(revision 6593)
 -@@ -19,11 +19,11 @@
 - **/
 - ?>
 - <?php
 --include_once "include/config.inc.php";
 -+include_once('include/config.inc.php');
 - 
 - if(isset($_REQUEST['download'])){
 --	$page["type"] = PAGE_TYPE_XML;
 --	$page["file"] = "new_locale.inc.php";
 -+	$page['type'] = PAGE_TYPE_XML;
 -+	$page['file'] = 'new_locale.inc.php';
 - }
 - else{
 - 	$page['title'] = "S_LOCALES";
 -@@ -181,26 +181,25 @@
 - 	$frmLcls->AddOption('id','locales');
 - 	$frmLcls->SetHelp($help);
 - 	
 --	$fileFrom = 'include/locales/'.$_REQUEST['srclang'].".inc.php";
 --	if(file_exists($fileFrom)){
 --		include($fileFrom);
 - 	
 -+	$fileFrom = 'include/locales/'.$_REQUEST['srclang'].'.inc.php';
 -+	if(ereg('^[A-Za-z0-9_]+$', $_REQUEST['srclang']) && file_exists($fileFrom)){
 -+		include($fileFrom);	
 - 		if(!isset($TRANSLATION) || !is_array($TRANSLATION)){
 --			error("Passed SOURCE is NOT valid PHP file.");
 -+			error('Passed SOURCE is NOT valid PHP file.');
 - 		}
 - 		$transFrom = $TRANSLATION;
 - 	}
 - 	unset($TRANSLATION);
 - 	
 --	$frmLcls->AddVar('extlang',$_REQUEST['extlang']);
 --	
 --	if($_REQUEST['extlang'] != 'new'){
 --		$fileTo = 'include/locales/'.$_REQUEST['extlang'].".inc.php";
 -+	$frmLcls->addVar('extlang',$_REQUEST['extlang']);
 -+	if(ereg('^[A-Za-z0-9_]+$', $_REQUEST['srclang']) && ($_REQUEST['extlang'] != 'new')){
 -+		$fileTo = 'include/locales/'.$_REQUEST['extlang'].'.inc.php';
 - 		if(file_exists($fileTo)){
 - 			include($fileTo);
 - 			
 - 			if(!isset($TRANSLATION) || !is_array($TRANSLATION)){
 --				error("Passed DEST is NOT valid PHP file.");
 -+				error('Passed DEST is NOT valid PHP file.');
 - 			}
 - 			$transTo = $TRANSLATION;
 - //			header('Content-Type: text/html; charset='.$TRANSLATION['S_HTML_CHARSET']);
 -
 ------
 -
 -This hunk fixes typo in the bugfix for local file inclusion inside
 -locales.php
 -
 -Index: branches/1.6/frontends/php/locales.php
 -===================================================================
 ---- frontends/php/locales.php	(revision 6885)
 -+++ frontends/php/locales.php	(revision 6886)
 -@@ -193,7 +193,7 @@
 - 	unset($TRANSLATION);
 - 	
 - 	$frmLcls->addVar('extlang',$_REQUEST['extlang']);
 --	if(ereg('^[A-Za-z0-9_]+$', $_REQUEST['srclang']) && ($_REQUEST['extlang'] != 'new')){
 -+	if(ereg('^[A-Za-z0-9_]+$', $_REQUEST['extlang']) && ($_REQUEST['extlang'] != 'new')){
 - 		$fileTo = 'include/locales/'.$_REQUEST['extlang'].'.inc.php';
 - 		if(file_exists($fileTo)){
 - 			include($fileTo);
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/files/patch-USH-162.2 /root/portwork/zabbix/files/patch-USH-162.2
 --- /usr/ports/net-mgmt/zabbix/files/patch-USH-162.2	2009-03-23 10:06:19.000000000 -0500
 +++ /root/portwork/zabbix/files/patch-USH-162.2	1969-12-31 18:00:00.000000000 -0600
 @@ -1,2622 +0,0 @@
 -Index: frontends/php/include/perm.inc.php
 -===================================================================
 ---- frontends/php/include/perm.inc.php	(revision 6620)
 -+++ frontends/php/include/perm.inc.php	(revision 6621)
 -@@ -44,7 +44,7 @@
 - 	$USER_DETAILS = NULL;
 - 	$login = FALSE;
 - 	
 --	$sessionid = get_cookie('zbx_sessionid');
 -+	$sessionid = get_request('sessionid',get_cookie('zbx_sessionid'));
 - 
 - 	if(!is_null($sessionid)){
 - 		$sql = 'SELECT u.*,s.* '.
 -Index: frontends/php/include/validate.inc.php
 -===================================================================
 ---- frontends/php/include/validate.inc.php	(revision 6620)
 -+++ frontends/php/include/validate.inc.php	(revision 6621)
 -@@ -428,8 +429,12 @@
 - 			}
 - 		}
 - 		else if($opt == O_OPT){
 --			if(!isset($_REQUEST[$field]))
 -+			if(!isset($_REQUEST[$field])){
 - 				return ZBX_VALID_OK;
 -+			}
 -+			else if(($flags&P_ACT) && !isset($_REQUEST['zbx_form'])){
 -+				return ZBX_VALID_ERROR;
 -+			}
 - 		}
 - 
 - 		check_trim($_REQUEST[$field]);
 -@@ -458,17 +463,21 @@
 - 		return ZBX_VALID_OK;
 - 	}
 - 
 --//		VAR			TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
 -+//		VAR							TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
 - 	$system_fields=array(
 --		"sessionid"=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	HEX(),NULL),
 --		"switch_node"=>		array(T_ZBX_INT, O_OPT,	 P_SYS,	DB_ID,NULL),
 --		"triggers_hash"=>	array(T_ZBX_STR, O_OPT,	 P_SYS,	NOT_EMPTY,NULL),
 --		'print'=>			array(T_ZBX_INT, O_OPT,	 P_SYS,	IN("1"),NULL),
 -+		'sessionid'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	HEX(), 'isset({zbx_form})'),
 -+		'zbx_form'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	NOT_EMPTY, NULL),
 -+// 
 -+		'switch_node'=>		array(T_ZBX_INT, O_OPT,	 P_SYS,	DB_ID,NULL),
 -+		'triggers_hash'=>	array(T_ZBX_STR, O_OPT,	 P_SYS,	NOT_EMPTY,NULL),
 -+		'print'=>			array(T_ZBX_INT, O_OPT,	 P_SYS,	IN('1'),NULL),
 -+		
 -+// table sorting
 - 		'sort'=>			array(T_ZBX_STR, O_OPT,	 P_SYS,	NULL,NULL),
 - 		'sortorder'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	NULL,NULL)
 - 	);
 - 
 --	function	invalid_url(){
 -+	function invalid_url(){
 - 		include_once "include/page_header.php";
 - 		unset_all();
 - 		show_error_message(S_INVALID_URL);
 -Index: frontends/php/include/classes/cform.inc.php
 -===================================================================
 ---- frontends/php/include/classes/cform.inc.php	(revision 6620)
 -+++ frontends/php/include/classes/cform.inc.php	(revision 6621)
 -@@ -22,46 +22,44 @@
 - 	class CForm extends CTag{
 - /* public */
 - 		function CForm($action=NULL, $method='post', $enctype=NULL){
 --			parent::CTag("form","yes");
 --			$this->SetMethod($method);
 --			$this->SetAction($action);
 --			$this->SetEnctype($enctype);
 -+			parent::CTag('form','yes');
 -+			$this->setMethod($method);
 -+			$this->setAction($action);
 -+			$this->setEnctype($enctype);
 -+			
 -+			$this->addVar('zbx_form', 'action');
 -+			$this->addVar('sessionid', $_COOKIE['zbx_sessionid']);
 - 		}
 - 		
 --		function SetMethod($value='post'){
 -+		function setMethod($value='post'){
 - 			return $this->options['method'] = $value;
 - 		}
 - 		
 --		function SetAction($value){
 -+		function setAction($value){
 - 			global $page;
 - 
 - 			if(is_null($value)){
 --				if(isset($page['file'])){
 --					$value = $page['file'];
 --				}
 --				else{
 --					$value = "#";
 --				}
 -+				$value = isset($page['file'])?$page['file']:'#';
 - 			}
 - 			
 - 		return $this->options['action'] = $value;
 - 		}
 - 		
 --		function SetEnctype($value=NULL){
 -+		function setEnctype($value=NULL){
 - 			if(is_null($value)){
 --				return $this->DelOption("enctype");
 -+				return $this->DelOption('enctype');
 - 			}
 - 			else if(!is_string($value)){
 - 				return $this->error("Incorrect value for SetEnctype [$value]");
 - 			}
 - 			
 --		return $this->AddOption("enctype",$value);
 -+		return $this->addOption('enctype',$value);
 - 		}
 - 
 --		function AddVar($name, $value){
 -+		function addVar($name, $value){
 - 			if(empty($value) && $value != 0)	return $value;
 - 
 --		return $this->AddItem(new CVar($name, $value));
 -+		return $this->addItem(new CVar($name, $value));
 - 		}
 - 	}
 - ?>
 -Index: frontends/php/include/classes/cformtable.inc.php
 -===================================================================
 ---- frontends/php/include/classes/cformtable.inc.php	(revision 6620)
 -+++ frontends/php/include/classes/cformtable.inc.php	(revision 6621)
 -@@ -46,48 +46,48 @@
 - 			}
 - 
 - 			parent::CForm($action,$method,$enctype);
 --			$this->SetTitle($title);
 --			$this->SetAlign('center');
 --			$this->SetHelp();
 -+			$this->setTitle($title);
 -+			$this->setAlign('center');
 -+			$this->setHelp();
 - 
 - //			$frm_link = new CLink();
 --//			$frm_link->SetName("formtable");
 --//			$this->AddItemToTopRow($frm_link);
 -+//			$frm_link->setName("formtable");
 -+//			$this->addItemToTopRow($frm_link);
 - 			
 --			$this->AddVar($form_variable, get_request($form_variable, 1));
 --			$this->AddVar('form_refresh',get_request('form_refresh',0)+1);
 -+			$this->addVar($form_variable, get_request($form_variable, 1));
 -+			$this->addVar('form_refresh',get_request('form_refresh',0)+1);
 - 
 - 			$this->bottom_items = new CCol(SPACE,'form_row_last');
 --		        $this->bottom_items->SetColSpan(2);
 -+		        $this->bottom_items->setColSpan(2);
 - 		}
 - 		
 --		function SetAction($value){
 -+		function setAction($value){
 - 			
 - 			if(is_string($value))
 --				return parent::SetAction($value);
 -+				return parent::setAction($value);
 - 			elseif(is_null($value))
 --				return parent::SetAction($value);
 -+				return parent::setAction($value);
 - 			else
 - 				return $this->error("Incorrect value for SetAction [$value]");
 - 		}
 - 		
 --		function SetName($value){
 -+		function setName($value){
 - 			if(!is_string($value)){
 - 				return $this->error("Incorrect value for SetAlign [$value]");
 - 			}
 --			$this->AddOption('name',$value);
 --			$this->AddOption('id',$value);
 -+			$this->addOption('name',$value);
 -+			$this->addOption('id',$value);
 - 		return true;
 - 		}
 - 		
 --		function SetAlign($value){
 -+		function setAlign($value){
 - 			if(!is_string($value)){
 - 				return $this->error("Incorrect value for SetAlign [$value]");
 - 			}
 - 			return $this->align = $value;
 - 		}
 - 
 --		function SetTitle($value=NULL){
 -+		function setTitle($value=NULL){
 - 			if(is_null($value)){
 - 				unset($this->title);
 - 				return 0;
 -@@ -101,7 +101,7 @@
 - 			$this->title = unpack_object($value);
 - 		}
 - 		
 --		function SetHelp($value=NULL){
 -+		function setHelp($value=NULL){
 - 			if(is_null($value)) {
 - 				$this->help = new CHelp();
 - 			} 
 -@@ -110,8 +110,8 @@
 - 			} 
 - 			else if(is_string($value)) {
 - 				$this->help = new CHelp($value);
 --				if($this->GetName()==NULL)
 --					$this->SetName($value);
 -+				if($this->getName()==NULL)
 -+					$this->setName($value);
 - 			} 
 - 			else {
 - 				return $this->error("Incorrect value for SetHelp [$value]");
 -@@ -119,21 +119,21 @@
 - 			return 0;
 - 		}
 - 		
 --		function AddVar($name, $value){
 --			$this->AddItemToTopRow(new CVar($name, $value));
 -+		function addVar($name, $value){
 -+			$this->addItemToTopRow(new CVar($name, $value));
 - 		}
 - 		
 --		function AddItemToTopRow($value){
 -+		function addItemToTopRow($value){
 - 			array_push($this->top_items, $value);
 - 		}
 - 		
 --		function AddRow($item1, $item2=NULL, $class=NULL){
 -+		function addRow($item1, $item2=NULL, $class=NULL){
 - 			if(strtolower(get_class($item1)) == 'crow'){
 - 			
 - 			} 
 - 			else if(strtolower(get_class($item1)) == 'ctable'){
 - 				$td = new CCol($item1,'form_row_c');
 --				$td->SetColSpan(2);
 -+				$td->setColSpan(2);
 - 				
 - 				$item1 = new CRow($td);
 - 			} 
 -@@ -157,7 +157,7 @@
 - 			array_push($this->center_items, $item1);
 - 		}
 - 		
 --		function AddSpanRow($value, $class=NULL){
 -+		function addSpanRow($value, $class=NULL){
 - 			if(is_string($value))
 - 				$item1=nbsp($value);
 - 
 -@@ -165,16 +165,16 @@
 - 			if(is_null($class)) $class = 'form_row_c';
 - 
 - 			$col = new CCol($value,$class);
 --		        $col->SetColSpan(2);
 -+		        $col->setColSpan(2);
 - 			array_push($this->center_items,new CRow($col));
 - 		}
 - 		
 - 		
 --		function AddItemToBottomRow($value){
 --			$this->bottom_items->AddItem($value);
 -+		function addItemToBottomRow($value){
 -+			$this->bottom_items->addItem($value);
 - 		}
 - 
 --		function SetTableClass($class){
 -+		function setTableClass($class){
 - 			if(is_string($class)){
 - 				$this->tableclass = $class;
 - 			}
 -@@ -186,25 +186,25 @@
 - 
 - 			$tbl = new CTable(NULL,$this->tableclass);
 - 
 --			$tbl->SetOddRowClass('form_odd_row');
 --			$tbl->SetEvenRowClass('form_even_row');
 --			$tbl->SetCellSpacing(0);
 --			$tbl->SetCellPadding(1);
 --			$tbl->SetAlign($this->align);
 -+			$tbl->setOddRowClass('form_odd_row');
 -+			$tbl->setEvenRowClass('form_even_row');
 -+			$tbl->setCellSpacing(0);
 -+			$tbl->setCellPadding(1);
 -+			$tbl->setAlign($this->align);
 - # add first row
 - 			$col = new CCol(NULL,'form_row_first');
 --			$col->SetColSpan(2);
 -+			$col->setColSpan(2);
 - 			
 --			if(isset($this->help))			$col->AddItem($this->help);
 --			if(isset($this->title))		 	$col->AddItem($this->title);
 --			foreach($this->top_items as $item)	$col->AddItem($item);
 -+			if(isset($this->help))			$col->addItem($this->help);
 -+			if(isset($this->title))		 	$col->addItem($this->title);
 -+			foreach($this->top_items as $item)	$col->addItem($item);
 - 			
 --			$tbl->SetHeader($col);
 -+			$tbl->setHeader($col);
 - # add last row
 --			$tbl->SetFooter($this->bottom_items);
 -+			$tbl->setFooter($this->bottom_items);
 - # add center rows
 - 			foreach($this->center_items as $item){
 --				$tbl->AddRow($item);
 -+				$tbl->addRow($item);
 - 			}
 - 		return $tbl->ToString();
 - 		}
 -
 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 -Obtained from svn://svn.zabbix.com/branches/1.6/frontends/php/
 -
 -This hunk adds session identifier transmission during Ajax requests.
 -It also reshuffles some JavaScript functions and adds many whitespace
 -changes.
 -
 -Index: frontends/php/js/cookies.js
 -===================================================================
 ---- frontends/php/js/cookies.js	(revision 6622)
 -+++ frontends/php/js/cookies.js	(revision 6623)
 -@@ -1,78 +0,0 @@
 --//Javascript document
 --/*
 --** ZABBIX
 --** Copyright (C) 2000-2005 SIA Zabbix
 --**
 --** This program is free software; you can redistribute it and/or modify
 --** it under the terms of the GNU General Public License as published by
 --** the Free Software Foundation; either version 2 of the License, or
 --** (at your option) any later version.
 --**
 --** This program is distributed in the hope that it will be useful,
 --** but WITHOUT ANY WARRANTY; without even the implied warranty of
 --** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 --** GNU General Public License for more details.
 --**
 --** You should have received a copy of the GNU General Public License
 --** along with this program; if not, write to the Free Software
 --** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 --**/ 
 --// Title: cookies class
 --// Description: to manipulate cookies on client side
 --// Author: Aly
 --
 --var cookie ={
 --cookies: new Array(),
 --
 --init: function () {
 --	var allCookies = document.cookie.split('; ');
 --	for (var i=0;i<allCookies.length;i++) {
 --		var cookiePair = allCookies[i].split('=');
 --		this.cookies[cookiePair[0]] = cookiePair[1];
 --	}
 --},
 --
 --create: function (name,value,days) {
 --	if(days) {
 --		var date = new Date();
 --		date.setTime(date.getTime()+(days*24*60*60*1000));
 --		var expires = "; expires="+date.toGMTString();
 --	}else{ 
 --		var expires = "";
 --	}
 --	
 --	document.cookie = name+"="+value+expires+"; path=/";
 --	this.cookies[name] = value;
 --},
 --
 --read : function(name){
 --	if(typeof(this.cookies[name]) != 'undefined'){
 --		return this.cookies[name];
 --	} else {
 --		var nameEQ = name + "=";
 --		var ca = document.cookie.split(';');
 --		for(var i=0;i < ca.length;i++) {
 --			var c = ca[i];
 --			while (c.charAt(0)==' ') c = c.substring(1,c.length);
 --			if(c.indexOf(nameEQ) == 0)	return this.cookies[name] = c.substring(nameEQ.length,c.length);
 --		}
 --	}
 --	return null;
 --},
 --
 --printall: function() {
 --	var allCookies = document.cookie.split('; ');
 --	for (var i=0;i<allCookies.length;i++) {
 --		var cookiePair = allCookies[i].split('=');
 --		
 --		alert("[" + cookiePair[0] + "] is " + cookiePair[1]); // assumes print is already defined
 --	}
 --},
 --
 --erase: function (name) {
 --	this.create(name,'',-1);
 --	this.cookies[name] = undefined;
 --}
 --}
 --
 --cookie.init();
 -\ No newline at end of file
 -Index: frontends/php/js/url.js
 -===================================================================
 ---- frontends/php/js/url.js	(revision 6622)
 -+++ frontends/php/js/url.js	(revision 6623)
 -@@ -1,256 +0,0 @@
 --// JavaScript Document
 --/*
 --** ZABBIX
 --** Copyright (C) 2000-2007 SIA Zabbix
 --**
 --** This program is free software; you can redistribute it and/or modify
 --** it under the terms of the GNU General Public License as published by
 --** the Free Software Foundation; either version 2 of the License, or
 --** (at your option) any later version.
 --**
 --** This program is distributed in the hope that it will be useful,
 --** but WITHOUT ANY WARRANTY; without even the implied warranty of
 --** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 --** GNU General Public License for more details.
 --**
 --** You should have received a copy of the GNU General Public License
 --** along with this program; if not, write to the Free Software
 --** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 --**
 --*/
 --
 --// Title: url manipulation class
 --// Author: Aly
 --
 --
 --var url = Class.create();
 --
 --url.prototype = {
 --url: 		'',		//	actually, it's depricated/private variable 
 --port:		 -1,
 --host: 		'',
 --protocol: 	'',
 --username:	'',
 --password:	'',
 --filr:		'',
 --reference:	'',
 --path:		'',
 --query:		'',
 --arguments: new Array(),
 --
 --initialize: function(url){
 --	this.url=unescape(url);
 --	
 --	this.query=(this.url.indexOf('?')>=0)?this.url.substring(this.url.indexOf('?')+1):'';
 --	if(this.query.indexOf('#')>=0) this.query=this.query.substring(0,this.query.indexOf('#'));
 --	
 --	var protocolSepIndex=this.url.indexOf('://');
 --	if(protocolSepIndex>=0){
 --		this.protocol=this.url.substring(0,protocolSepIndex).toLowerCase();
 --		this.host=this.url.substring(protocolSepIndex+3);
 --		if(this.host.indexOf('/')>=0) this.host=this.host.substring(0,this.host.indexOf('/'));
 --		var atIndex=this.host.indexOf('@');
 --		if(atIndex>=0){
 --			var credentials=this.host.substring(0,atIndex);
 --			var colonIndex=credentials.indexOf(':');
 --			if(colonIndex>=0){
 --				this.username=credentials.substring(0,colonIndex);
 --				this.password=credentials.substring(colonIndex);
 --			}else{
 --				this.username=credentials;
 --			}
 --			this.host=this.host.substring(atIndex+1);
 --		}
 --		
 --		var host_ipv6 = this.host.indexOf(']');
 --		if(host_ipv6>=0){
 --			if(host_ipv6 < (this.host.length-1)){
 --				host_ipv6++;
 --				var host_less = this.host.substring(host_ipv6);
 --
 --				var portColonIndex=host_less.indexOf(':');
 --				if(portColonIndex>=0){
 --					this.port=host_less.substring(portColonIndex+1);
 --					this.host=this.host.substring(0,host_ipv6);
 --				}
 --			}
 --		}
 --		else{
 --			var portColonIndex=this.host.indexOf(':');
 --			if(portColonIndex>=0){
 --				this.port=this.host.substring(portColonIndex+1);
 --				this.host=this.host.substring(0,portColonIndex);
 --			}
 --		}
 --		this.file=this.url.substring(protocolSepIndex+3);
 --		this.file=this.file.substring(this.file.indexOf('/'));
 --	}else{
 --		this.file=this.url;
 --	}
 --	if(this.file.indexOf('?')>=0) this.file=this.file.substring(0, this.file.indexOf('?'));
 --
 --	var refSepIndex=url.indexOf('#');
 --	if(refSepIndex>=0){
 --		this.file=this.file.substring(0,refSepIndex);
 --		this.reference=this.url.substring(this.url.indexOf('#'));
 --	}
 --	this.path=this.file;
 --	if(this.query.length>0) this.file+='?'+this.query;
 --	if(this.reference.length>0) this.file+='#'+this.reference;
 --	if(this.query.length > 0)	this.getArguments();
 --},
 --
 --getArguments: function(){
 --	var args=this.query.split('&');
 --	var keyval='';
 --	
 --	if(args.length<1) return;
 --	
 --	for(i=0;i<args.length;i++){
 --		keyval=args[i].split('=');
 --		this.arguments[i] = new Array(keyval[0],(keyval.length==1)?keyval[0]:keyval[1]);
 --	}
 --},
 --
 --getArgumentValue: function(key){
 --	if(key.length<1) return '';
 --	for(i=0; i < this.arguments.length; i++){
 --		if(this.arguments[i][0] == key) return this.arguments[i][1];
 --	}
 --	
 --return '';
 --},
 --
 --getArgumentValues: function(){
 --	var a=new Array();
 --	var b=this.query.split('&');
 --	var c='';
 --	if(b.length<1) return a;
 --	for(i=0;i<b.length;i++){
 --		c=b[i].split('=');
 --		a[i]=new Array(c[0],((c.length==1)?c[0]:c[1]));
 --	}
 --return a;
 --},
 --
 --getUrl: function(){
 --	var uri = (this.protocol.length > 0)?(this.protocol+'://'):'';
 --	uri +=  encodeURI((this.username.length > 0)?(this.username):'');
 --	uri +=  encodeURI((this.password.length > 0)?(':'+this.password):'');
 --	uri +=  (this.host.length > 0)?(this.host):'';
 --	uri +=  (this.port.length > 0)?(':'+this.port):'';
 --	uri +=  encodeURI((this.path.length > 0)?(this.path):'');
 --	uri +=  encodeURI((this.query.length > 0)?('?'+this.query):'');
 --	uri +=  encodeURI((this.reference.length > 0)?('#'+this.reference):'');
 --//	alert(uri.getProtocol()+' : '+uri.getHost()+' : '+uri.getPort()+' : '+uri.getPath()+' : '+uri.getQuery());
 --return uri;
 --},
 --
 --setArgument: function(key,value){
 --
 --	var valueisset = false;
 --	if(typeof(key) == 'undefined') throw 'Invalid argument past for setArgument';
 --	
 --	value =('undefined' != typeof(value))?value:'';
 --
 --	for(i=0; i < this.arguments.length; i++){
 --		if(this.arguments[i][0] == key){
 --			valueisset = true;
 --			this.arguments[i][1] = value;
 --		}
 --	}	
 --	if(!valueisset)	this.arguments[this.arguments.length] = new Array(key,value);
 --	this.formatQuery();
 --},
 --
 --formatQuery: function(){
 --	if(this.arguments.lenght < 1) return;
 --	
 --	var query = '';
 --	for(i=0; i < this.arguments.length; i++){		
 --		query+=this.arguments[i][0]+'='+this.arguments[i][1]+'&';
 --	}
 --	this.query = query.substring(0,query.length-1);
 --},
 --
 --getPort: function(){ 
 --	return this.port;
 --},
 --
 --setPort: function(port){
 --	this.port = port;
 --},
 --
 --getQuery: function(){ 
 --	return this.query;
 --},
 --
 --setQuery: function(query){ 
 --	this.query = query;
 --	this.getArgumentValues();
 --	this.formatQuery();
 --},
 --
 --/* Returns the protocol of this URL, i.e. 'http' in the url 'http://server/' */
 --getProtocol: function(){
 --	return this.protocol;
 --},
 --
 --setProtocol: function(protocol){
 --	this.protocol = protocol;
 --},
 --/* Returns the host name of this URL, i.e. 'server.com' in the url 'http://server.com/' */
 --getHost: function(){
 --	return this.host;
 --},
 --
 --setHost: function(set){
 --	this.host = host;
 --},
 --
 --/* Returns the user name part of this URL, i.e. 'joe' in the url 'http://joe@server.com/' */
 --getUserName: function(){
 --	return this.username;
 --},
 --
 --setUserName: function(username){
 --	this.username = username;
 --},
 --
 --/* Returns the password part of this url, i.e. 'secret' in the url 'http://joe:secret@server.com/' */
 --getPassword: function(){
 --	return this.password;
 --},
 --
 --setPassword: function(password){
 --	this.password = password;
 --},
 --
 --/* Returns the file part of this url, i.e. everything after the host name. */
 --getFile: function(){
 --	return this.file = file;
 --},
 --
 --setFile: function(file){
 --	this.file = file;
 --},
 --
 --/* Returns the reference of this url, i.e. 'bookmark' in the url 'http://server/file.html#bookmark' */
 --getReference: function(){
 --	return this.reference;
 --},
 --
 --setReference: function(reference){
 --	this.reference = reference;
 --},
 --
 --/* Returns the file path of this url, i.e. '/dir/file.html' in the url 'http://server/dir/file.html' */
 --getPath: function(){
 --	return this.path;
 --},
 --
 --setPath: function(path){
 --	this.path = path;
 --}
 --
 --}
 -\ No newline at end of file
 -Index: frontends/php/js/updater.js
 -===================================================================
 ---- frontends/php/js/updater.js	(revision 6622)
 -+++ frontends/php/js/updater.js	(revision 6623)
 -@@ -27,7 +27,7 @@
 - 
 - 	setObj4Update: function(id,frequency,url,params){
 - 		var obj = document.getElementById(id);
 --		if((typeof(obj) == 'undefined')) return false; 
 -+		if(typeof(obj) == 'undefined') return false; 
 - 	
 - 		var obj4update = {
 - 			'id': 		id,
 -@@ -65,7 +65,9 @@
 - 		obj4update.ready = false;
 - 		
 - 		var uri = new url(obj4update.url);
 --		new Ajax.Updater(obj4update.id, obj4update.url,
 -+		uri.setArgument('sessionid', cookie.read('zbx_sessionid'));
 -+
 -+		new Ajax.Updater(obj4update.id, uri.getUrl(),//obj4update.url,
 - 			{
 - 				method: 'post',
 - 				'parameters':	obj4update.params,
 -Index: frontends/php/js/gpc.js
 -===================================================================
 ---- frontends/php/js/gpc.js	(revision 0)
 -+++ frontends/php/js/gpc.js	(revision 6623)
 -@@ -0,0 +1,315 @@
 -+//Javascript document
 -+/*
 -+** ZABBIX
 -+** Copyright (C) 2000-2009 SIA Zabbix
 -+**
 -+** This program is free software; you can redistribute it and/or modify
 -+** it under the terms of the GNU General Public License as published by
 -+** the Free Software Foundation; either version 2 of the License, or
 -+** (at your option) any later version.
 -+**
 -+** This program is distributed in the hope that it will be useful,
 -+** but WITHOUT ANY WARRANTY; without even the implied warranty of
 -+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -+** GNU General Public License for more details.
 -+**
 -+** You should have received a copy of the GNU General Public License
 -+** along with this program; if not, write to the Free Software
 -+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 -+**/
 -+
 -+// Title: cookies class
 -+// Description: to manipulate cookies on client side
 -+// Author: Aly
 -+var cookie ={
 -+cookies: new Array(),
 -+
 -+init: function () {
 -+	var allCookies = document.cookie.split('; ');
 -+	for (var i=0;i<allCookies.length;i++) {
 -+		var cookiePair = allCookies[i].split('=');
 -+		this.cookies[cookiePair[0]] = cookiePair[1];
 -+	}
 -+},
 -+
 -+create: function (name,value,days) {
 -+	if(days) {
 -+		var date = new Date();
 -+		date.setTime(date.getTime()+(days*24*60*60*1000));
 -+		var expires = "; expires="+date.toGMTString();
 -+	}
 -+	else{ 
 -+		var expires = "";
 -+	}
 -+	
 -+	document.cookie = name+"="+value+expires+"; path=/";
 -+	this.cookies[name] = value;
 -+},
 -+
 -+read : function(name){
 -+	if(typeof(this.cookies[name]) != 'undefined'){
 -+		return this.cookies[name];
 -+	} 
 -+	else {
 -+		var nameEQ = name + "=";
 -+		var ca = document.cookie.split(';');
 -+		for(var i=0;i < ca.length;i++) {
 -+			var c = ca[i];
 -+			while (c.charAt(0)==' ') c = c.substring(1,c.length);
 -+			if(c.indexOf(nameEQ) == 0)	return this.cookies[name] = c.substring(nameEQ.length,c.length);
 -+		}
 -+	}
 -+	return null;
 -+},
 -+
 -+printall: function() {
 -+	var allCookies = document.cookie.split('; ');
 -+	for(var i=0;i<allCookies.length;i++){
 -+		var cookiePair = allCookies[i].split('=');
 -+		
 -+		alert("[" + cookiePair[0] + "] is " + cookiePair[1]); // assumes print is already defined
 -+	}
 -+},
 -+
 -+erase: function (name) {
 -+	this.create(name,'',-1);
 -+	this.cookies[name] = undefined;
 -+}
 -+}
 -+
 -+cookie.init();
 -+
 -+
 -+
 -+// Title: url manipulation class
 -+// Author: Aly
 -+var url = Class.create();
 -+
 -+url.prototype = {
 -+url: 		'',		//	actually, it's depricated/private variable 
 -+port:		 -1,
 -+host: 		'',
 -+protocol: 	'',
 -+username:	'',
 -+password:	'',
 -+filr:		'',
 -+reference:	'',
 -+path:		'',
 -+query:		'',
 -+arguments: new Array(),
 -+
 -+initialize: function(url){
 -+	this.url=unescape(url);
 -+	
 -+	this.query=(this.url.indexOf('?')>=0)?this.url.substring(this.url.indexOf('?')+1):'';
 -+	if(this.query.indexOf('#')>=0) this.query=this.query.substring(0,this.query.indexOf('#'));
 -+	
 -+	var protocolSepIndex=this.url.indexOf('://');
 -+	if(protocolSepIndex>=0){
 -+		this.protocol=this.url.substring(0,protocolSepIndex).toLowerCase();
 -+		this.host=this.url.substring(protocolSepIndex+3);
 -+		if(this.host.indexOf('/')>=0) this.host=this.host.substring(0,this.host.indexOf('/'));
 -+		var atIndex=this.host.indexOf('@');
 -+		if(atIndex>=0){
 -+			var credentials=this.host.substring(0,atIndex);
 -+			var colonIndex=credentials.indexOf(':');
 -+			if(colonIndex>=0){
 -+				this.username=credentials.substring(0,colonIndex);
 -+				this.password=credentials.substring(colonIndex);
 -+			}else{
 -+				this.username=credentials;
 -+			}
 -+			this.host=this.host.substring(atIndex+1);
 -+		}
 -+		
 -+		var host_ipv6 = this.host.indexOf(']');
 -+		if(host_ipv6>=0){
 -+			if(host_ipv6 < (this.host.length-1)){
 -+				host_ipv6++;
 -+				var host_less = this.host.substring(host_ipv6);
 -+
 -+				var portColonIndex=host_less.indexOf(':');
 -+				if(portColonIndex>=0){
 -+					this.port=host_less.substring(portColonIndex+1);
 -+					this.host=this.host.substring(0,host_ipv6);
 -+				}
 -+			}
 -+		}
 -+		else{
 -+			var portColonIndex=this.host.indexOf(':');
 -+			if(portColonIndex>=0){
 -+				this.port=this.host.substring(portColonIndex+1);
 -+				this.host=this.host.substring(0,portColonIndex);
 -+			}
 -+		}
 -+		this.file=this.url.substring(protocolSepIndex+3);
 -+		this.file=this.file.substring(this.file.indexOf('/'));
 -+	}else{
 -+		this.file=this.url;
 -+	}
 -+	if(this.file.indexOf('?')>=0) this.file=this.file.substring(0, this.file.indexOf('?'));
 -+
 -+	var refSepIndex=url.indexOf('#');
 -+	if(refSepIndex>=0){
 -+		this.file=this.file.substring(0,refSepIndex);
 -+		this.reference=this.url.substring(this.url.indexOf('#'));
 -+	}
 -+	this.path=this.file;
 -+	if(this.query.length>0) this.file+='?'+this.query;
 -+	if(this.reference.length>0) this.file+='#'+this.reference;
 -+	if(this.query.length > 0)	this.getArguments();
 -+},
 -+
 -+getArguments: function(){
 -+	var args=this.query.split('&');
 -+	var keyval='';
 -+	
 -+	if(args.length<1) return;
 -+	
 -+	for(i=0;i<args.length;i++){
 -+		keyval=args[i].split('=');
 -+		this.arguments[i] = new Array(keyval[0],(keyval.length==1)?keyval[0]:keyval[1]);
 -+	}
 -+},
 -+
 -+getArgumentValue: function(key){
 -+	if(key.length<1) return '';
 -+	for(i=0; i < this.arguments.length; i++){
 -+		if(this.arguments[i][0] == key) return this.arguments[i][1];
 -+	}
 -+	
 -+return '';
 -+},
 -+
 -+getArgumentValues: function(){
 -+	var a=new Array();
 -+	var b=this.query.split('&');
 -+	var c='';
 -+	if(b.length<1) return a;
 -+	for(i=0;i<b.length;i++){
 -+		c=b[i].split('=');
 -+		a[i]=new Array(c[0],((c.length==1)?c[0]:c[1]));
 -+	}
 -+return a;
 -+},
 -+
 -+getUrl: function(){
 -+	var uri = (this.protocol.length > 0)?(this.protocol+'://'):'';
 -+	uri +=  encodeURI((this.username.length > 0)?(this.username):'');
 -+	uri +=  encodeURI((this.password.length > 0)?(':'+this.password):'');
 -+	uri +=  (this.host.length > 0)?(this.host):'';
 -+	uri +=  (this.port.length > 0)?(':'+this.port):'';
 -+	uri +=  encodeURI((this.path.length > 0)?(this.path):'');
 -+	uri +=  encodeURI((this.query.length > 0)?('?'+this.query):'');
 -+	uri +=  encodeURI((this.reference.length > 0)?('#'+this.reference):'');
 -+//	alert(uri.getProtocol()+' : '+uri.getHost()+' : '+uri.getPort()+' : '+uri.getPath()+' : '+uri.getQuery());
 -+return uri;
 -+},
 -+
 -+setArgument: function(key,value){
 -+
 -+	var valueisset = false;
 -+	if(typeof(key) == 'undefined') throw 'Invalid argument past for setArgument';
 -+	
 -+	value =('undefined' != typeof(value))?value:'';
 -+
 -+	for(i=0; i < this.arguments.length; i++){
 -+		if(this.arguments[i][0] == key){
 -+			valueisset = true;
 -+			this.arguments[i][1] = value;
 -+		}
 -+	}	
 -+	if(!valueisset)	this.arguments[this.arguments.length] = new Array(key,value);
 -+	this.formatQuery();
 -+},
 -+
 -+formatQuery: function(){
 -+	if(this.arguments.lenght < 1) return;
 -+	
 -+	var query = '';
 -+	for(i=0; i < this.arguments.length; i++){		
 -+		query+=this.arguments[i][0]+'='+this.arguments[i][1]+'&';
 -+	}
 -+	this.query = query.substring(0,query.length-1);
 -+},
 -+
 -+getPort: function(){ 
 -+	return this.port;
 -+},
 -+
 -+setPort: function(port){
 -+	this.port = port;
 -+},
 -+
 -+getQuery: function(){ 
 -+	return this.query;
 -+},
 -+
 -+setQuery: function(query){ 
 -+	this.query = query;
 -+	this.getArgumentValues();
 -+	this.formatQuery();
 -+},
 -+
 -+/* Returns the protocol of this URL, i.e. 'http' in the url 'http://server/' */
 -+getProtocol: function(){
 -+	return this.protocol;
 -+},
 -+
 -+setProtocol: function(protocol){
 -+	this.protocol = protocol;
 -+},
 -+/* Returns the host name of this URL, i.e. 'server.com' in the url 'http://server.com/' */
 -+getHost: function(){
 -+	return this.host;
 -+},
 -+
 -+setHost: function(set){
 -+	this.host = host;
 -+},
 -+
 -+/* Returns the user name part of this URL, i.e. 'joe' in the url 'http://joe@server.com/' */
 -+getUserName: function(){
 -+	return this.username;
 -+},
 -+
 -+setUserName: function(username){
 -+	this.username = username;
 -+},
 -+
 -+/* Returns the password part of this url, i.e. 'secret' in the url 'http://joe:secret@server.com/' */
 -+getPassword: function(){
 -+	return this.password;
 -+},
 -+
 -+setPassword: function(password){
 -+	this.password = password;
 -+},
 -+
 -+/* Returns the file part of this url, i.e. everything after the host name. */
 -+getFile: function(){
 -+	return this.file = file;
 -+},
 -+
 -+setFile: function(file){
 -+	this.file = file;
 -+},
 -+
 -+/* Returns the reference of this url, i.e. 'bookmark' in the url 'http://server/file.html#bookmark' */
 -+getReference: function(){
 -+	return this.reference;
 -+},
 -+
 -+setReference: function(reference){
 -+	this.reference = reference;
 -+},
 -+
 -+/* Returns the file path of this url, i.e. '/dir/file.html' in the url 'http://server/dir/file.html' */
 -+getPath: function(){
 -+	return this.path;
 -+},
 -+
 -+setPath: function(path){
 -+	this.path = path;
 -+}
 -+}
 -\ No newline at end of file
 -Index: frontends/php/js/ajax_req.js
 -===================================================================
 ---- frontends/php/js/ajax_req.js	(revision 6622)
 -+++ frontends/php/js/ajax_req.js	(revision 6623)
 -@@ -19,6 +19,8 @@
 - **/
 - 
 - function send_params(params){
 -+	if(typeof(params) == 'undefined') var params = new Array();
 -+	params['sessionid'] = cookie.read('zbx_sessionid');
 - 
 - 	var uri = new url(location.href);
 - 	new Ajax.Request(uri.getPath()+"?output=ajax",
 -Index: frontends/php/dashboard.php
 -===================================================================
 ---- frontends/php/dashboard.php	(revision 6622)
 -+++ frontends/php/dashboard.php	(revision 6623)
 -@@ -42,8 +42,8 @@
 - 		'view_style'=>	array(T_ZBX_INT, O_OPT,	P_SYS,	IN('0,1'),		NULL),
 - 		'type'=>		array(T_ZBX_INT, O_OPT,	P_SYS,	IN('0,1'),		NULL),
 - 		
 --		'output'=>		array(T_ZBX_STR, O_OPT, P_ACT,	NULL,			NULL),
 --		'jsscriptid'=>	array(T_ZBX_STR, O_OPT, P_ACT,	NULL,			NULL),
 -+		'output'=>		array(T_ZBX_STR, O_OPT, P_SYS,	NULL,			NULL),
 -+		'jsscriptid'=>	array(T_ZBX_STR, O_OPT, P_SYS,	NULL,			NULL),
 - 		'fullscreen'=>	array(T_ZBX_INT, O_OPT,	P_SYS,	IN('0,1'),		NULL),
 - 		
 - //ajax
 -@@ -56,7 +56,7 @@
 - 	);
 - 
 - 	check_fields($fields);
 --	
 -+
 - 	$available_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY, PERM_RES_IDS_ARRAY);
 - // ACTION /////////////////////////////////////////////////////////////////////////////
 - 	if(isset($_REQUEST['favobj'])){
 -Index: frontends/php/include/page_header.php
 -===================================================================
 ---- frontends/php/include/page_header.php	(revision 6622)
 -+++ frontends/php/include/page_header.php	(revision 6623)
 -@@ -428,8 +428,8 @@
 - 
 - <script type="text/javascript" src="js/prototype.js"></script>
 - <script type="text/javascript" src="js/common.js"></script>
 -+<script type="text/javascript" src="js/gpc.js"></script>
 - <script type="text/javascript" src="js/ajax_req.js"></script>
 --<script type="text/javascript" src="js/url.js"></script>
 - <script type="text/javascript" src="js/chkbxrange.js"></script>
 - <?php
 - 	if(isset($page['scripts']) && is_array($page['scripts'])){
 -Index: frontends/php/include/validate.inc.php
 -===================================================================
 ---- frontends/php/include/validate.inc.php	(revision 6622)
 -+++ frontends/php/include/validate.inc.php	(revision 6623)
 -@@ -432,7 +432,7 @@
 - 			if(!isset($_REQUEST[$field])){
 - 				return ZBX_VALID_OK;
 - 			}
 --			else if(($flags&P_ACT) && !isset($_REQUEST['zbx_form'])){
 -+			else if(($flags&P_ACT) && !isset($_REQUEST['sessionid'])){
 - 				return ZBX_VALID_ERROR;
 - 			}
 - 		}
 -@@ -465,8 +465,7 @@
 - 
 - //		VAR							TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
 - 	$system_fields=array(
 --		'sessionid'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	HEX(), 'isset({zbx_form})'),
 --		'zbx_form'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	NOT_EMPTY, NULL),
 -+		'sessionid'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	HEX(), NULL),
 - // 
 - 		'switch_node'=>		array(T_ZBX_INT, O_OPT,	 P_SYS,	DB_ID,NULL),
 - 		'triggers_hash'=>	array(T_ZBX_STR, O_OPT,	 P_SYS,	NOT_EMPTY,NULL),
 -Index: frontends/php/include/classes/ctree.inc.php
 -===================================================================
 ---- frontends/php/include/classes/ctree.inc.php	(revision 6622)
 -+++ frontends/php/include/classes/ctree.inc.php	(revision 6623)
 -@@ -214,7 +214,6 @@
 - 	global $page;
 - 		$js = '
 - 		<script src="js/tree.js" type="text/javascript"></script>
 --		<script src="js/cookies.js" type="text/javascript"></script>	
 - 		<script type="text/javascript"> 
 - 				var treenode = new Array(0);
 - 				var tree_name = "tree_'.$this->getUserAlias().'_'.$page["file"].'";
 -Index: frontends/php/include/classes/cform.inc.php
 -===================================================================
 ---- frontends/php/include/classes/cform.inc.php	(revision 6622)
 -+++ frontends/php/include/classes/cform.inc.php	(revision 6623)
 -@@ -27,7 +27,6 @@
 - 			$this->setAction($action);
 - 			$this->setEnctype($enctype);
 - 			
 --			$this->addVar('zbx_form', 'action');
 - 			$this->addVar('sessionid', $_COOKIE['zbx_sessionid']);
 - 		}
 - 		
 -Index: frontends/php/index.php
 -===================================================================
 ---- frontends/php/index.php	(revision 6622)
 -+++ frontends/php/index.php	(revision 6623)
 -@@ -33,8 +33,8 @@
 - 		"password"=>		array(T_ZBX_STR, O_OPT,	NULL,	NULL,		'isset({enter})'),
 - 		"sessionid"=>		array(T_ZBX_STR, O_OPT,	NULL,	NULL,		NULL),
 - 		"message"=>			array(T_ZBX_STR, O_OPT,	NULL,	NULL,		NULL),
 --		"reconnect"=>		array(T_ZBX_INT, O_OPT,	P_ACT, BETWEEN(0,65535),NULL),
 --		"enter"=>			array(T_ZBX_STR, O_OPT, P_SYS|P_ACT,    NULL,   NULL),
 -+		"reconnect"=>		array(T_ZBX_INT, O_OPT,	NULL, BETWEEN(0,65535),NULL),
 -+		"enter"=>			array(T_ZBX_STR, O_OPT, P_SYS,    NULL,   NULL),
 - 		"form"=>			array(T_ZBX_STR, O_OPT, P_SYS,  NULL,   	NULL),
 - 		"form_refresh"=>	array(T_ZBX_INT, O_OPT, NULL,   NULL,   	NULL)
 - 	);
 -
 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 -Obtained from svn://svn.zabbix.com/branches/1.6/frontends/php/
 -
 -Checks if 'zbx_sessionid' cookie is really here before setting
 -'sessionid' variable.
 -
 -Index: frontends/php/include/classes/cform.inc.php
 -===================================================================
 ---- frontends/php/include/classes/cform.inc.php	(revision 6624)
 -+++ frontends/php/include/classes/cform.inc.php	(revision 6625)
 -@@ -27,7 +27,8 @@
 - 			$this->setAction($action);
 - 			$this->setEnctype($enctype);
 - 			
 --			$this->addVar('sessionid', $_COOKIE['zbx_sessionid']);
 -+			if(isset($_COOKIE['zbx_sessionid']))
 -+				$this->addVar('sessionid', $_COOKIE['zbx_sessionid']);
 - 		}
 - 		
 - 		function setMethod($value='post'){
 -
 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 -Obtained from svn://svn.zabbix.com/branches/1.6/frontends/php/
 -
 -This hunk basically trades the name 'sessionid' for 'sid'.  It also
 -reshuffles many functions, adds many whitespace changes and implants
 -URL manipulation tools for JavaScript.
 -
 -Index: frontends/php/users.php
 -===================================================================
 ---- frontends/php/users.php	(revision 6643)
 -+++ frontends/php/users.php	(revision 6644)
 -@@ -1,7 +1,7 @@
 - <?php
 - /* 
 - ** ZABBIX
 --** Copyright (C) 2000-2005 SIA Zabbix
 -+** Copyright (C) 2000-2009 SIA Zabbix
 - **
 - ** This program is free software; you can redistribute it and/or modify
 - ** it under the terms of the GNU General Public License as published by
 -@@ -24,6 +24,7 @@
 - 	require_once('include/media.inc.php');
 - 	require_once('include/users.inc.php');
 - 	require_once('include/forms.inc.php');
 -+	require_once('include/classes/curl.inc.php');
 - 	require_once('include/js.inc.php');
 - 
 - 	$page['title'] = 'S_USERS';
 -@@ -32,7 +33,6 @@
 - 	$page['scripts'] = array('menu_scripts.js');
 - 
 - include_once('include/page_header.php');
 --
 - ?>
 - <?php
 - 	$_REQUEST['config']=get_request('config',get_profile('web.users.config',0));
 -Index: frontends/php/js/menu.js
 -===================================================================
 ---- frontends/php/js/menu.js	(revision 6643)
 -+++ frontends/php/js/menu.js	(revision 6644)
 -@@ -386,8 +386,13 @@
 - 		this.n_y -= this.getprop('height') * (o_parent.a_config.length - item_offset);
 - 	}
 - 
 -+	if(!is_null(this.a_config[1]) && (this.a_config[1].indexOf('javascript') == -1)){
 -+		var uri = new url(this.a_config[1]);
 -+		this.a_config[1] = uri.getUrl();
 -+	}
 -+	
 - 	// generate item's HMTL
 --	var el = document.createElement("a");
 -+	var el = document.createElement('a');
 - 	el.setAttribute('id', 'e' + o_root.n_id + '_' + this.n_id + 'o');
 - 	el.setAttribute('href', this.a_config[1]);
 - 
 -Index: frontends/php/js/updater.js
 -===================================================================
 ---- frontends/php/js/updater.js	(revision 6643)
 -+++ frontends/php/js/updater.js	(revision 6644)
 -@@ -65,8 +65,6 @@
 - 		obj4update.ready = false;
 - 		
 - 		var uri = new url(obj4update.url);
 --		uri.setArgument('sessionid', cookie.read('zbx_sessionid'));
 --
 - 		new Ajax.Updater(obj4update.id, uri.getUrl(),//obj4update.url,
 - 			{
 - 				method: 'post',
 -Index: frontends/php/js/gpc.js
 -===================================================================
 ---- frontends/php/js/gpc.js	(revision 6643)
 -+++ frontends/php/js/gpc.js	(revision 6644)
 -@@ -96,7 +96,7 @@
 - reference:	'',
 - path:		'',
 - query:		'',
 --arguments: new Array(),
 -+arguments:  {},
 - 
 - initialize: function(url){
 - 	this.url=unescape(url);
 -@@ -116,7 +116,8 @@
 - 			if(colonIndex>=0){
 - 				this.username=credentials.substring(0,colonIndex);
 - 				this.password=credentials.substring(colonIndex);
 --			}else{
 -+			}
 -+			else{
 - 				this.username=credentials;
 - 			}
 - 			this.host=this.host.substring(atIndex+1);
 -@@ -144,9 +145,11 @@
 - 		}
 - 		this.file=this.url.substring(protocolSepIndex+3);
 - 		this.file=this.file.substring(this.file.indexOf('/'));
 --	}else{
 -+	}
 -+	else{
 - 		this.file=this.url;
 - 	}
 -+	
 - 	if(this.file.indexOf('?')>=0) this.file=this.file.substring(0, this.file.indexOf('?'));
 - 
 - 	var refSepIndex=url.indexOf('#');
 -@@ -157,42 +160,51 @@
 - 	this.path=this.file;
 - 	if(this.query.length>0) this.file+='?'+this.query;
 - 	if(this.reference.length>0) this.file+='#'+this.reference;
 --	if(this.query.length > 0)	this.getArguments();
 -+	if(this.query.length > 0)	this.formatArguments();
 -+	
 -+	var sid = cookie.read('zbx_sessionid');
 -+	this.setArgument('sid', sid.substring(16));
 - },
 - 
 --getArguments: function(){
 -+
 -+formatQuery: function(){
 -+	if(this.arguments.lenght < 1) return;
 -+	
 -+	var query = '';
 -+	for(var key in this.arguments){
 -+		if(typeof(this.arguments[key]) != 'undefined'){
 -+			query+=key+'='+this.arguments[key]+'&';
 -+		}
 -+	}
 -+	this.query = query.substring(0,query.length-1);
 -+},
 -+
 -+formatArguments: function(){
 - 	var args=this.query.split('&');
 - 	var keyval='';
 --	
 -+
 - 	if(args.length<1) return;
 - 	
 --	for(i=0;i<args.length;i++){
 --		keyval=args[i].split('=');
 --		this.arguments[i] = new Array(keyval[0],(keyval.length==1)?keyval[0]:keyval[1]);
 -+	for(i=0; i<args.length; i++){
 -+		keyval = args[i].split('=');
 -+		this.arguments[keyval[0]] = (keyval.length>1)?keyval[1]:'';
 - 	}
 - },
 - 
 --getArgumentValue: function(key){
 --	if(key.length<1) return '';
 --	for(i=0; i < this.arguments.length; i++){
 --		if(this.arguments[i][0] == key) return this.arguments[i][1];
 --	}
 --	
 --return '';
 -+setArgument: function(key,value){
 -+	this.arguments[key] = value;
 -+	this.formatQuery();
 - },
 - 
 --getArgumentValues: function(){
 --	var a=new Array();
 --	var b=this.query.split('&');
 --	var c='';
 --	if(b.length<1) return a;
 --	for(i=0;i<b.length;i++){
 --		c=b[i].split('=');
 --		a[i]=new Array(c[0],((c.length==1)?c[0]:c[1]));
 --	}
 --return a;
 -+getArgument: function(key){
 -+	if(typeof(this.arguments[key]) != 'undefined') return this.arguments[key];
 -+	else return null;
 - },
 - 
 -+getArguments: function(){
 -+	return this.arguments;
 -+},
 -+
 - getUrl: function(){
 - 	var uri = (this.protocol.length > 0)?(this.protocol+'://'):'';
 - 	uri +=  encodeURI((this.username.length > 0)?(this.username):'');
 -@@ -206,51 +218,30 @@
 - return uri;
 - },
 - 
 --setArgument: function(key,value){
 --
 --	var valueisset = false;
 --	if(typeof(key) == 'undefined') throw 'Invalid argument past for setArgument';
 --	
 --	value =('undefined' != typeof(value))?value:'';
 --
 --	for(i=0; i < this.arguments.length; i++){
 --		if(this.arguments[i][0] == key){
 --			valueisset = true;
 --			this.arguments[i][1] = value;
 --		}
 --	}	
 --	if(!valueisset)	this.arguments[this.arguments.length] = new Array(key,value);
 --	this.formatQuery();
 -+setPort: function(port){
 -+	this.port = port;
 - },
 - 
 --formatQuery: function(){
 --	if(this.arguments.lenght < 1) return;
 --	
 --	var query = '';
 --	for(i=0; i < this.arguments.length; i++){		
 --		query+=this.arguments[i][0]+'='+this.arguments[i][1]+'&';
 --	}
 --	this.query = query.substring(0,query.length-1);
 --},
 --
 - getPort: function(){ 
 - 	return this.port;
 - },
 - 
 --setPort: function(port){
 --	this.port = port;
 -+setQuery: function(query){ 
 -+	this.query = query;
 -+	if(this.query.indexOf('?')>=0){
 -+		this.query= this.query.substring(this.query.indexOf('?')+1);
 -+	}
 -+	
 -+	this.formatArguments();
 -+	
 -+	var sid = cookie.read('zbx_sessionid');
 -+	this.setArgument('sid', sid.substring(16));
 - },
 - 
 - getQuery: function(){ 
 - 	return this.query;
 - },
 - 
 --setQuery: function(query){ 
 --	this.query = query;
 --	this.getArgumentValues();
 --	this.formatQuery();
 --},
 --
 - /* Returns the protocol of this URL, i.e. 'http' in the url 'http://server/' */
 - getProtocol: function(){
 - 	return this.protocol;
 -@@ -264,7 +255,7 @@
 - 	return this.host;
 - },
 - 
 --setHost: function(set){
 -+setHost: function(host){
 - 	this.host = host;
 - },
 - 
 -@@ -288,7 +279,7 @@
 - 
 - /* Returns the file part of this url, i.e. everything after the host name. */
 - getFile: function(){
 --	return this.file = file;
 -+	return this.file;
 - },
 - 
 - setFile: function(file){
 -Index: frontends/php/js/menu_scripts.js
 -===================================================================
 ---- frontends/php/js/menu_scripts.js	(revision 6643)
 -+++ frontends/php/js/menu_scripts.js	(revision 6644)
 -@@ -64,7 +64,7 @@
 - 	for(var i=0; i < menu_usrgrp_gui.length; i++){
 - 		if((typeof(menu_usrgrp_gui[i]) != 'undefined') && !empty(menu_usrgrp_gui[i])){
 - 			var row = menu_usrgrp_gui[i];
 --			var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid);
 -+			var menu_row = new Array(row.name,'users.php?config=0&form=update&grpaction=1&userid='+userid+'&usrgrpid='+row.usrgrpid);
 - 			grp_gui_add_to.push(menu_row);
 - 		}
 - 	}
 -@@ -73,7 +73,7 @@
 - 	for(var i=0; i < usr_grp_gui_in.length; i++){
 - 		if((typeof(usr_grp_all_in[i]) != 'undefined') && !empty(usr_grp_gui_in[i])){
 - 			var row = usr_grp_gui_in[i];
 --			var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid);
 -+			var menu_row = new Array(row.name,'users.php?config=0&form=update&grpaction=0&userid='+userid+'&usrgrpid='+row.usrgrpid);
 - 			grp_gui_rmv_frm.push(menu_row);
 - 		}
 - 	}
 -@@ -89,7 +89,7 @@
 - 	for(var i=0; i < menu_usrgrp_status.length; i++){
 - 		if((typeof(menu_usrgrp_status[i]) != 'undefined') && !empty(menu_usrgrp_status[i])){
 - 			var row = menu_usrgrp_status[i];
 --			var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=1&userid="+userid+"&usrgrpid="+row.usrgrpid);
 -+			var menu_row = new Array(row.name,'users.php?config=0&form=update&grpaction=1&userid='+userid+'&usrgrpid='+row.usrgrpid);
 - 			grp_status_add_to.push(menu_row);
 - 		}
 - 	}
 -@@ -98,7 +98,7 @@
 - 	for(var i=0; i < usr_grp_status_in.length; i++){
 - 		if((typeof(usr_grp_status_in[i]) != 'undefined') && !empty(usr_grp_status_in[i])){
 - 			var row = usr_grp_status_in[i];
 --			var menu_row = new Array(row.name,"users.php?config=0&form=update&grpaction=0&userid="+userid+"&usrgrpid="+row.usrgrpid);
 -+			var menu_row = new Array(row.name,'users.php?config=0&form=update&grpaction=0&userid='+userid+'&usrgrpid='+row.usrgrpid);
 - 			grp_status_rmv_frm.push(menu_row);
 - 		}
 - 	}
 -Index: frontends/php/js/common.js
 -===================================================================
 ---- frontends/php/js/common.js	(revision 6643)
 -+++ frontends/php/js/common.js	(revision 6644)
 -@@ -82,6 +82,16 @@
 - 	div_help.appendChild(document.createElement("br"));
 - }
 - 
 -+function SDJ(obj){
 -+	var debug = '';
 -+	for(var key in obj) {
 -+		var value = obj[key];
 -+		debug+=key+': '+value+'\n';
 -+	}
 -+	SDI('\n'+debug);
 -+}
 -+
 -+
 - /// Alpha-Betic sorting
 - 
 - function addListener(element, eventname, expression, bubbling){
 -Index: frontends/php/js/ajax_req.js
 -===================================================================
 ---- frontends/php/js/ajax_req.js	(revision 6643)
 -+++ frontends/php/js/ajax_req.js	(revision 6644)
 -@@ -20,14 +20,16 @@
 - 
 - function send_params(params){
 - 	if(typeof(params) == 'undefined') var params = new Array();
 --	params['sessionid'] = cookie.read('zbx_sessionid');
 - 
 - 	var uri = new url(location.href);
 --	new Ajax.Request(uri.getPath()+"?output=ajax",
 -+	uri.setQuery('?output=ajax');
 -+
 -+	new Ajax.Request(uri.getUrl(),
 - 					{
 - 						'method': 'post',
 - 						'parameters':params,
 --						'onSuccess': function(resp){ },//alert(resp.responseText);
 -+						'onSuccess': function(resp){ },
 -+//						'onSuccess': function(resp){ alert(resp.responseText); },
 - 						'onFailure': function(){ document.location = uri.getPath()+'?'+Object.toQueryString(params); }
 - 					}
 - 	);
 -Index: frontends/php/dashboard.php
 -===================================================================
 ---- frontends/php/dashboard.php	(revision 6643)
 -+++ frontends/php/dashboard.php	(revision 6644)
 -@@ -54,7 +54,7 @@
 - 		'action'=>		array(T_ZBX_STR, O_OPT, P_ACT, 	IN("'add','remove'"),NULL),
 - 		'state'=>		array(T_ZBX_INT, O_OPT, P_ACT,  NOT_EMPTY,		'isset({favobj}) && ("hat"=={favobj})'),
 - 	);
 --
 -+	
 - 	check_fields($fields);
 - 
 - 	$available_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY, PERM_RES_IDS_ARRAY);
 -@@ -179,11 +179,11 @@
 - 	$p_elements = array();
 - // Header	
 - 
 --	$url = '?fullscreen='.($_REQUEST['fullscreen']?'0':'1');
 -+	$url = new Curl('?fullscreen='.($_REQUEST['fullscreen']?'0':'1'));
 - 
 - 	$fs_icon = new CDiv(SPACE,'fullscreen');
 - 	$fs_icon->AddOption('title',$_REQUEST['fullscreen']?S_NORMAL.' '.S_VIEW:S_FULLSCREEN);
 --	$fs_icon->AddAction('onclick',new CScript("javascript: document.location = '".$url."';"));
 -+	$fs_icon->AddAction('onclick',new CScript("javascript: document.location = '".$url->getUrl()."';"));
 - //-------------
 - 
 - 	$left_tab = new CTable();
 -Index: frontends/php/include/func.inc.php
 -===================================================================
 ---- frontends/php/include/func.inc.php	(revision 6643)
 -+++ frontends/php/include/func.inc.php	(revision 6644)
 -@@ -344,6 +344,18 @@
 - return $pos;
 - }
 - 
 -+function zbx_substring($haystack, $start, $end=null){
 -+	if($end < $start) return '';
 -+	
 -+	$len = zbx_strlen($haystack);
 -+	if(is_null($end))
 -+		$result = substr($haystack, $start);
 -+	else
 -+		$result = substr($haystack, $start, ($end - $start));
 -+
 -+return $result;
 -+}
 -+
 - function uint_in_array($needle,$haystack){
 - 	foreach($haystack as $id => $value)
 - 		if(bccomp($needle,$value) == 0) return true;
 -Index: frontends/php/include/screens.inc.php
 -===================================================================
 ---- frontends/php/include/screens.inc.php	(revision 6643)
 -+++ frontends/php/include/screens.inc.php	(revision 6644)
 -@@ -886,7 +886,7 @@
 - 					$action = 'screenedit.php?form=update'.url_param('screenid').'&x='.$c.'&y='.$r.'#form';
 - 				else
 - 					$action = NULL;
 --
 -+					
 - 				if($editmode == 1 && isset($_REQUEST["form"]) && 
 - 					isset($_REQUEST["x"]) && $_REQUEST["x"]==$c &&
 - 					isset($_REQUEST["y"]) && $_REQUEST["y"]==$r)
 -Index: frontends/php/include/perm.inc.php
 -===================================================================
 ---- frontends/php/include/perm.inc.php	(revision 6643)
 -+++ frontends/php/include/perm.inc.php	(revision 6644)
 -@@ -44,7 +44,7 @@
 - 	$USER_DETAILS = NULL;
 - 	$login = FALSE;
 - 	
 --	$sessionid = get_request('sessionid',get_cookie('zbx_sessionid'));
 -+	$sessionid = get_cookie('zbx_sessionid');
 - 
 - 	if(!is_null($sessionid)){
 - 		$sql = 'SELECT u.*,s.* '.
 -Index: frontends/php/include/config.inc.php
 -===================================================================
 ---- frontends/php/include/config.inc.php	(revision 6643)
 -+++ frontends/php/include/config.inc.php	(revision 6644)
 -@@ -65,6 +65,7 @@
 - 	require_once('include/classes/cpumenu.inc.php');
 - 	require_once('include/classes/graph.inc.php');
 - 	require_once('include/classes/cscript.inc.php');
 -+	require_once('include/classes/curl.inc.php');
 - 
 - // Include Tactical Overview modules
 - 
 -Index: frontends/php/include/validate.inc.php
 -===================================================================
 ---- frontends/php/include/validate.inc.php	(revision 6643)
 -+++ frontends/php/include/validate.inc.php	(revision 6644)
 -@@ -432,8 +432,13 @@
 - 			if(!isset($_REQUEST[$field])){
 - 				return ZBX_VALID_OK;
 - 			}
 --			else if(($flags&P_ACT) && !isset($_REQUEST['sessionid'])){
 --				return ZBX_VALID_ERROR;
 -+			else if($flags&P_ACT){
 -+				if(!isset($_REQUEST['sid'])){
 -+					return ZBX_VALID_ERROR;
 -+				}
 -+				else if(isset($_COOKIE['zbx_sessionid']) && ($_REQUEST['sid'] != substr($_COOKIE['zbx_sessionid'],16,16))){
 -+					return ZBX_VALID_ERROR;
 -+				}
 - 			}
 - 		}
 - 
 -@@ -465,7 +470,7 @@
 - 
 - //		VAR							TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
 - 	$system_fields=array(
 --		'sessionid'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	HEX(), NULL),
 -+		'sid'=>		array(T_ZBX_STR, O_OPT,	 P_SYS,	HEX(), NULL),
 - // 
 - 		'switch_node'=>		array(T_ZBX_INT, O_OPT,	 P_SYS,	DB_ID,NULL),
 - 		'triggers_hash'=>	array(T_ZBX_STR, O_OPT,	 P_SYS,	NOT_EMPTY,NULL),
 -Index: frontends/php/include/classes/clink.inc.php
 -===================================================================
 ---- frontends/php/include/classes/clink.inc.php	(revision 6643)
 -+++ frontends/php/include/classes/clink.inc.php	(revision 6644)
 -@@ -19,12 +19,14 @@
 - **/
 - ?>
 - <?php
 --	class CLink extends CTag
 --	{
 -+	class CLink extends CTag{
 - /* public */
 - 		function CLink($item=NULL,$url=NULL,$class=NULL,$action=NULL){
 - 			parent::CTag('a','yes');
 --
 -+			
 -+			$uri = new Curl($url);
 -+			$url = $uri->getUrl();
 -+			
 - 			$this->tag_start= '';
 - 			$this->tag_end = '';
 - 			$this->tag_body_start = '';
 -@@ -36,14 +38,14 @@
 - 			if(!is_null($action))	$this->SetAction($action);
 - 		}
 - 		
 --		function SetAction($value=NULL){
 -+		function setAction($value=NULL){
 - 			if(is_null($value))
 - 				return $this->options['action'] = $page['file'];
 - 
 - 			return parent::AddAction('onclick', $value);
 - 		}
 - 		
 --		function SetUrl($value){
 -+		function setUrl($value){
 - 			$this->AddOption('href', $value);
 - 		}
 - 		
 -@@ -54,7 +56,7 @@
 - 				return null;
 - 		}
 - 		
 --		function SetTarget($value=NULL){
 -+		function setTarget($value=NULL){
 - 			if(is_null($value)){
 - 				unset($this->options['target']);
 - 			}
 -Index: frontends/php/include/classes/curl.inc.php
 -===================================================================
 ---- frontends/php/include/classes/curl.inc.php	(revision 0)
 -+++ frontends/php/include/classes/curl.inc.php	(revision 6644)
 -@@ -0,0 +1,273 @@
 -+<?php
 -+/* 
 -+** ZABBIX
 -+** Copyright (C) 2000-2005 SIA Zabbix
 -+**
 -+** $this program is free software; you can redistribute it and/or modify
 -+** it under the terms of the GNU General Public License as published by
 -+** the Free Software Foundation; either version 2 of the License, or
 -+** (at your option) any later version.
 -+**
 -+** $this program is distributed in the hope that it will be useful,
 -+** but WITHOUT ANY WARRANTY; without even the implied warranty of
 -+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -+** GNU General Public License for more details.
 -+**
 -+** You should have received a copy of the GNU General Public License
 -+** along with $this program; if not, write to the Free Software
 -+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 -+**/
 -+?>
 -+<?php
 -+// Title: url manipulation class
 -+// Author: Aly
 -+
 -+class Curl{
 -+/*
 -+private $url = 			'';		//	actually, it's depricated/private variable 
 -+private $port =			false;
 -+private $host = 		'';
 -+private $protocol = 	'';
 -+private $username =		'';
 -+private $password =		'';
 -+private $filr =			'';
 -+private $reference =	'';
 -+private $path =			'';
 -+private $query =		'';
 -+private $arguments = 	array();
 -+//*/
 -+
 -+function curl($url=null){
 -+	global $USER_DETAILS;
 -+	
 -+	$this->url = 		'';		//	actually, it's depricated/private variable 
 -+	$this->port =		false;
 -+	$this->host = 		'';
 -+	$this->protocol = 	'';
 -+	$this->username =	'';
 -+	$this->password =	'';
 -+	$this->filr =		'';
 -+	$this->reference =	'';
 -+	$this->path =		'';
 -+	$this->query =		'';
 -+	$this->arguments = 	array();
 -+
 -+	if(empty($url)){
 -+		$this->formatArguments();
 -+		$this->url = $url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'].'?'.$this->getQuery();
 -+	}
 -+	else{
 -+		$this->url=urldecode($url);
 -+
 -+		$tmp_pos = strpos($this->url,'?');
 -+		$this->query=($tmp_pos!==false)?(substr($this->url,$tmp_pos+1)):'';
 -+
 -+		$tmp_pos = strpos($this->query,'#');
 -+		if($tmp_pos!==false) $this->query=zbx_substring($this->query,0,$tmp_pos);
 -+
 -+		$this->formatArguments($this->query);
 -+	}
 -+
 -+	$protocolSepIndex=strpos($this->url,'://');	
 -+	if($protocolSepIndex!==false){
 -+		$this->protocol= strtolower(zbx_substring($this->url,0,$protocolSepIndex));
 -+		
 -+		$this->host=substr($this->url, $protocolSepIndex+3);
 -+		
 -+		$tmp_pos = strpos($this->host,'/');
 -+		if($tmp_pos!==false) $this->host=zbx_substring($this->host,0,$tmp_pos);
 -+		
 -+		$atIndex=strpos($this->host,'@');
 -+		if($atIndex!==false){
 -+			$credentials=zbx_substring($this->host,0,$atIndex);
 -+			
 -+			$colonIndex=strpos(credentials,':');
 -+			if($colonIndex!==false){
 -+				$this->username=zbx_substring($credentials,0,$colonIndex);
 -+				$this->password=substr($credentials,$colonIndex);
 -+			}
 -+			else{
 -+				$this->username=$credentials;
 -+			}
 -+			$this->host=substr($this->host,$atIndex+1);
 -+		}
 -+		
 -+		$host_ipv6 = strpos($this->host,']');
 -+		if($host_ipv6!==false){
 -+			if($host_ipv6 < (zbx_strlen($this->host)-1)){
 -+				$host_ipv6++;
 -+				$host_less = substr($this->host,$host_ipv6);
 -+
 -+				$portColonIndex=strpos($host_less,':');
 -+				if($portColonIndex!==false){
 -+					$this->host=zbx_substring($this->host,0,$host_ipv6);
 -+					$this->port=substr($host_less,$portColonIndex+1);
 -+				}
 -+			}
 -+		}
 -+		else{
 -+			$portColonIndex=strpos($this->host,':');
 -+			if($portColonIndex!==false){
 -+				$this->host=zbx_substring($this->host,0,$portColonIndex);
 -+				$this->port=substr($this->host,$portColonIndex+1);
 -+			}
 -+		}
 -+		
 -+		$this->file = substr($this->url,$protocolSepIndex+3);
 -+		$this->file = substr($this->file, strpos($this->file,'/'));
 -+	}
 -+	else{
 -+		$this->file = $this->url;
 -+	}
 -+	
 -+	$tmp_pos = strpos($this->file,'?');
 -+	if($tmp_pos!==false) $this->file=zbx_substring($this->file, 0, $tmp_pos);
 -+
 -+	$refSepIndex=strpos($url,'#');
 -+	if($refSepIndex!==false){
 -+		$this->file = zbx_substring($this->file,0,$refSepIndex);
 -+		$this->reference = substr($url,strpos($url,'#')+1);
 -+	}
 -+	
 -+	$this->path=$this->file;
 -+	if(zbx_strlen($this->query)>0) 		$this->file.='?'.$this->query;
 -+	if(zbx_strlen($this->reference)>0)	$this->file.='#'.$this->reference;
 -+	
 -+	if(isset($_COOKIE['zbx_sessionid']))
 -+		$this->setArgument('sid', substr($_COOKIE['zbx_sessionid'],16,16));
 -+}
 -+
 -+function formatQuery(){
 -+	$query = '';
 -+	foreach($this->arguments as $key => $value){
 -+		$query.= $key.'='.$value.'&';
 -+	}
 -+	$this->query = rtrim($query,'&');
 -+}
 -+
 -+function formatArguments($query=null){
 -+	if(is_null($query)){
 -+		$this->arguments = $_REQUEST;
 -+	}
 -+	else{
 -+		$query=ltrim($query,'?');
 -+		$args = explode('&',$query);
 -+		foreach($args as $id => $arg){
 -+			if(empty($arg)) continue;
 -+
 -+			$tmp = explode('=',$arg);
 -+			$this->arguments[$tmp[0]] = isset($tmp[1])?$tmp[1]:'';
 -+		}
 -+	}
 -+	$this->formatQuery();
 -+}
 -+
 -+function getUrl(){
 -+	$url = (zbx_strlen($this->protocol) > 0)?($this->protocol.'://'):'';
 -+	$url .=  (zbx_strlen($this->username) > 0)?$this->username:'';
 -+	$url .=  (zbx_strlen($this->password) > 0)?':'.$this->password:'';
 -+	$url .=  (zbx_strlen($this->host) > 0)?$this->host:'';
 -+	$url .=  $this->port?(':'.$this->port):'';
 -+	$url .=  (zbx_strlen($this->path) > 0)?$this->path:'';
 -+	$url .=  (zbx_strlen($this->query) > 0)?('?'.$this->query):'';
 -+	$url .=  (zbx_strlen($this->reference) > 0)?('#'.urlencode($this->reference)):'';
 -+	
 -+//SDI($this->getProtocol().' : '.$this->getHost().' : '.$this->getPort().' : '.$this->getPath().' : '.$this->getQuery());
 -+return $url;
 -+}
 -+
 -+function setPort($port){
 -+	$this->port = $port;
 -+}
 -+
 -+function getPort(){ 
 -+	return $this->port;
 -+}
 -+
 -+function setArgument($key,$value=''){
 -+	$this->arguments[$key] = $value;
 -+	$this->formatQuery();
 -+}
 -+
 -+function getArgument($key){
 -+	if(isset($this->arguments[$key])) return $this->arguments[$key];
 -+	else return NULL;
 -+}
 -+
 -+function setQuery($query){ 
 -+	$this->query = $query;
 -+	$this->formatArguments();
 -+	$this->formatQuery();
 -+}
 -+
 -+function getQuery(){ 
 -+	return $this->query;
 -+}
 -+
 -+function setProtocol($protocol){
 -+	$this->protocol = $protocol;
 -+}
 -+
 -+/* Returns the protocol of $this URL, i.e. 'http' in the url 'http://server/' */
 -+function getProtocol(){
 -+	return $this->protocol;
 -+}
 -+
 -+function setHost($host){
 -+	$this->host = $host;
 -+}
 -+
 -+/* Returns the host name of $this URL, i.e. 'server.com' in the url 'http://server.com/' */
 -+function getHost(){
 -+	return $this->host;
 -+}
 -+
 -+function setUserName($username){
 -+	$this->username = $username;
 -+}
 -+
 -+/* Returns the user name part of $this URL, i.e. 'joe' in the url 'http://joe@server.com/' */
 -+function getUserName(){
 -+	return $this->username;
 -+}
 -+
 -+function setPassword($password){
 -+	$this->password = $password;
 -+}
 -+
 -+/* Returns the password part of $this url, i.e. 'secret' in the url 'http://joe:secret@server.com/' */
 -+function getPassword(){
 -+	return $this->password;
 -+}
 -+
 -+function setFile($file){
 -+	$this->file = $file;
 -+}
 -+
 -+/* Returns the file part of $this url, i.e. everything after the host name. */
 -+function getFile(){
 -+	return $this->file;
 -+}
 -+
 -+function setReference($reference){
 -+	$this->reference = $reference;
 -+}
 -+
 -+/* Returns the reference of $this url, i.e. 'bookmark' in the url 'http://server/file.html#bookmark' */
 -+function getReference(){
 -+	return $this->reference;
 -+}
 -+
 -+function setPath($path){
 -+	$this->path = $path;
 -+}
 -+
 -+/* Returns the file path of $this url, i.e. '/dir/file.html' in the url 'http://server/dir/file.html' */
 -+function getPath(){
 -+	return $this->path;
 -+}
 -+
 -+function toString(){
 -+	return $this->getUrl();
 -+}
 -+}
 -\ No newline at end of file
 -Index: frontends/php/include/classes/cform.inc.php
 -===================================================================
 ---- frontends/php/include/classes/cform.inc.php	(revision 6643)
 -+++ frontends/php/include/classes/cform.inc.php	(revision 6644)
 -@@ -28,7 +28,7 @@
 - 			$this->setEnctype($enctype);
 - 			
 - 			if(isset($_COOKIE['zbx_sessionid']))
 --				$this->addVar('sessionid', $_COOKIE['zbx_sessionid']);
 -+				$this->addVar('sid', substr($_COOKIE['zbx_sessionid'],16,16));
 - 		}
 - 		
 - 		function setMethod($value='post'){
 -Index: frontends/php/include/classes/ctag.inc.php
 -===================================================================
 ---- frontends/php/include/classes/ctag.inc.php	(revision 6643)
 -+++ frontends/php/include/classes/ctag.inc.php	(revision 6644)
 -@@ -1,7 +1,7 @@
 - <?php
 - /* 
 - ** ZABBIX
 --** Copyright (C) 2000-2005 SIA Zabbix
 -+** Copyright (C) 2000-2009 SIA Zabbix
 - **
 - ** This program is free software; you can redistribute it and/or modify
 - ** it under the terms of the GNU General Public License as published by
 -@@ -19,272 +19,258 @@
 - **/
 - ?>
 - <?php
 --	function destroy_objects()
 --	{
 --		global $GLOBALS;
 --
 --		if(isset($GLOBALS)) foreach($GLOBALS as $name => $value)
 --		{
 --			if(!is_object($GLOBALS[$name])) continue;
 --			unset($GLOBALS[$name]);
 --		}
 -+function destroy_objects(){
 -+	if(isset($GLOBALS)) foreach($GLOBALS as $name => $value){
 -+		if(!is_object($GLOBALS[$name])) continue;
 -+		unset($GLOBALS[$name]);
 - 	}
 --	
 --	function unpack_object(&$item)
 --	{
 --		$res = "";
 -+}
 - 
 --		if(is_object($item))
 --		{
 --			$res = $item->ToString(false);
 --		}
 --		elseif(is_array($item))
 --		{
 --			foreach($item as $id => $dat)	
 --				$res .= unpack_object($item[$id]); // Attention, recursion !!!
 --		}
 --		elseif(!is_null($item))
 --		{
 --			$res = strval($item);
 --			unset($item);
 --		}
 --		return $res;
 -+function unpack_object(&$item){
 -+	$res = '';
 -+
 -+	if(is_object($item)){
 -+		$res = $item->toString(false);
 - 	}
 -+	else if(is_array($item)){
 -+		foreach($item as $id => $dat)	
 -+			$res .= unpack_object($item[$id]); // Attention, recursion !!!
 -+	}
 -+	else if(!is_null($item)){
 -+		$res = strval($item);
 -+		unset($item);
 -+	}
 -+return $res;
 -+}
 - 
 --	function implode_objects($glue, &$pieces)
 --	{
 --		if( !is_array($pieces) )	return unpack_object($pieces);
 -+function implode_objects($glue, &$pieces){
 -+	if( !is_array($pieces) )	return unpack_object($pieces);
 - 
 --		foreach($pieces as $id => $piece)
 --			$pieces[$id] = unpack_object($piece);
 -+	foreach($pieces as $id => $piece)
 -+		$pieces[$id] = unpack_object($piece);
 - 
 --		return implode($glue, $pieces);
 --	}
 -+return implode($glue, $pieces);
 -+}
 - 
 --	class CObject
 --	{
 --		function CObject($items=null)
 --		{
 --			$this->items = array();
 --			if(isset($items))
 --			{
 --				$this->AddItem($items);
 --			}
 -+class CObject{
 -+	function CObject($items=null){
 -+		$this->items = array();
 -+		if(isset($items)){
 -+			$this->addItem($items);
 - 		}
 --		
 --		function ToString($destroy=true)
 --		{
 --			$res = implode('',$this->items);
 --			if($destroy) $this->Destroy();
 --			return $res;
 --		}
 -+	}
 -+	
 -+	function toString($destroy=true){
 -+		$res = implode('',$this->items);
 -+		if($destroy) $this->destroy();
 -+		return $res;
 -+	}
 - 
 --		function Show($destroy=true){
 --			echo $this->ToString($destroy);			
 --		}
 -+	function show($destroy=true){
 -+		echo $this->toString($destroy);			
 -+	}
 - 
 --		function Destroy()
 --		{
 -+	function destroy(){
 - // TODO Problem under PHP 5.0  "Fatal error: Cannot re-assign $this in ..."
 - //			$this = null;
 --			$this->CleanItems();
 --		}
 -+		$this->cleanItems();
 -+	}
 - 
 --		function CleanItems(){	
 --			$this->items = array();	
 -+	function cleanItems(){	
 -+		$this->items = array();	
 -+	}
 -+	
 -+	function itemsCount(){	
 -+		return count($this->items);	
 -+	}
 -+	
 -+	function addItem($value){
 -+	
 -+		if(is_object($value)){
 -+			array_push($this->items,unpack_object($value));
 - 		}
 --		
 --		function ItemsCount(){	
 --			return count($this->items);	
 -+		else if(is_string($value)){
 -+			array_push($this->items,str_replace(array('<','>','"'),array('&lt;','&gt;','&quot;'),$value));
 -+//				array_push($this->items,htmlspecialchars($value));
 - 		}
 --		
 --		function AddItem($value){
 --		
 --			if(is_object($value)){
 --				array_push($this->items,unpack_object($value));
 -+		else if(is_array($value)){
 -+			foreach($value as $item){
 -+				$this->addItem($item);			 // Attention, recursion !!!
 - 			}
 --			else if(is_string($value)){
 --				array_push($this->items,str_replace(array('<','>','"'),array('&lt;','&gt;','&quot;'),$value));
 --//				array_push($this->items,htmlspecialchars($value));
 --			}
 --			else if(is_array($value)){
 --				foreach($value as $item){
 --					$this->AddItem($item);			 // Attention, recursion !!!
 --				}
 --			}
 --			else if(!is_null($value)){
 --				array_push($this->items,unpack_object($value));
 --			}
 - 		}
 -+		else if(!is_null($value)){
 -+			array_push($this->items,unpack_object($value));
 -+		}
 - 	}
 -+}
 - 
 --	class CTag extends CObject{
 -+class CTag extends CObject{
 - /* private *//*
 --		var $tagname;
 --		var $options = array();
 --		var $paired;*/
 -+	var $tagname;
 -+	var $options = array();
 -+	var $paired;*/
 - /* protected *//*
 --		var $items = array();
 -+	var $items = array();
 - 
 --		var $tag_body_start;
 --		var $tag_body_end;
 --		var $tag_start;
 --		var $tag_end;*/
 -+	var $tag_body_start;
 -+	var $tag_body_end;
 -+	var $tag_start;
 -+	var $tag_end;*/
 - 
 - /* public */
 --		function CTag($tagname=NULL, $paired='no', $body=NULL, $class=null){
 --			parent::CObject();
 -+	function CTag($tagname=NULL, $paired='no', $body=NULL, $class=null){
 -+		parent::CObject();
 - 
 --			$this->options = array();
 -+		$this->options = array();
 - 
 --			if(!is_string($tagname)){
 --				return $this->error('Incorrect tagname for CTag ['.$tagname.']');
 --			}
 --			
 --			$this->tagname = $tagname;
 --			$this->paired = $paired;
 --
 --			$this->tag_start = $this->tag_end = $this->tag_body_start = $this->tag_body_end = '';
 --
 --			if(is_null($body)){
 --				$this->tag_end = $this->tag_body_start = "\n";
 --			}
 --			else{
 --				CTag::AddItem($body);
 --			}
 --
 --			$this->SetClass($class);
 -+		if(!is_string($tagname)){
 -+			return $this->error('Incorrect tagname for CTag ['.$tagname.']');
 - 		}
 - 		
 --		function ShowStart()	{	echo $this->StartToString();	}
 --		function ShowBody()	{	echo $this->BodyToString();	}
 --		function ShowEnd()	{	echo $this->EndToString();	}
 -+		$this->tagname = $tagname;
 -+		$this->paired = $paired;
 - 
 --		function StartToString(){
 --			$res = $this->tag_start.'<'.$this->tagname;
 --			foreach($this->options as $key => $value){
 --				$res .= ' '.$key.'="'.$value.'"';
 --			}
 --			$res .= ($this->paired=='yes')?'>':' />';
 --		return $res;
 --		}
 -+		$this->tag_start = $this->tag_end = $this->tag_body_start = $this->tag_body_end = '';
 - 
 --		function BodyToString(){
 --			$res = $this->tag_body_start;
 --		return $res.parent::ToString(false);
 --			
 --			/*foreach($this->items as $item)
 --				$res .= $item;
 --			return $res;*/
 -+		if(is_null($body)){
 -+			$this->tag_end = $this->tag_body_start = "\n";
 - 		}
 --		
 --		function EndToString(){
 --			$res = ($this->paired=='yes') ? $this->tag_body_end.'</'.$this->tagname.'>' : '';
 --			$res .= $this->tag_end;
 --		return $res;
 -+		else{
 -+			CTag::addItem($body);
 - 		}
 --		
 --		function ToString($destroy=true){
 --			$res  = $this->StartToString();
 --			$res .= $this->BodyToString();
 --			$res .= $this->EndToString();
 - 
 --			if($destroy) $this->Destroy();
 -+		$this->setClass($class);
 -+	}
 -+	
 -+	function showStart()	{	echo $this->startToString();	}
 -+	function showBody()	{	echo $this->bodyToString();	}
 -+	function showEnd()	{	echo $this->endToString();	}
 - 
 --		return $res;
 -+	function startToString(){
 -+		$res = $this->tag_start.'<'.$this->tagname;
 -+		foreach($this->options as $key => $value){
 -+			$res .= ' '.$key.'="'.$value.'"';
 - 		}
 --		
 --		function SetName($value){
 --			if(is_null($value)) return $value;
 -+		$res .= ($this->paired=='yes')?'>':' />';
 -+	return $res;
 -+	}
 - 
 --			if(!is_string($value)){
 --				return $this->error("Incorrect value for SetName [$value]");
 --			}
 --		return $this->AddOption("name",$value);
 --		}
 -+	function bodyToString(){
 -+		$res = $this->tag_body_start;
 -+	return $res.parent::ToString(false);
 - 		
 --		function GetName(){
 --			if(isset($this->options['name']))
 --				return $this->options['name'];
 --		return NULL;
 --		}
 --		
 --		function SetClass($value){
 --			if(isset($value))
 --				$this->options['class'] = $value;
 --			else
 --				unset($this->options['class']);
 -+		/*foreach($this->items as $item)
 -+			$res .= $item;
 -+		return $res;*/
 -+	}
 -+	
 -+	function endToString(){
 -+		$res = ($this->paired=='yes') ? $this->tag_body_end.'</'.$this->tagname.'>' : '';
 -+		$res .= $this->tag_end;
 -+	return $res;
 -+	}
 -+	
 -+	function toString($destroy=true){
 -+		$res  = $this->startToString();
 -+		$res .= $this->bodyToString();
 -+		$res .= $this->endToString();
 - 
 --		return $value;
 -+		if($destroy) $this->Destroy();
 -+
 -+	return $res;
 -+	}
 -+	
 -+	function setName($value){
 -+		if(is_null($value)) return $value;
 -+
 -+		if(!is_string($value)){
 -+			return $this->error("Incorrect value for setName [$value]");
 - 		}
 --		
 --		function DelOption($name){
 --			unset($this->options[$name]);
 --		}
 --		
 --		function GetOption($name){
 --			$ret = NULL;
 --			if(isset($this->options[$name]))
 --				$ret =& $this->options[$name];
 --		return $ret;
 --		}
 -+	return $this->addOption("name",$value);
 -+	}
 -+	
 -+	function getName(){
 -+		if(isset($this->options['name']))
 -+			return $this->options['name'];
 -+	return NULL;
 -+	}
 -+	
 -+	function setClass($value){
 -+		if(isset($value))
 -+			$this->options['class'] = $value;
 -+		else
 -+			unset($this->options['class']);
 - 
 --		function SetHint($text, $width='', $class=''){
 --			if(empty($text)) return false;
 -+	return $value;
 -+	}
 -+	
 -+	function DelOption($name){
 -+		unset($this->options[$name]);
 -+	}
 -+	
 -+	function getOption($name){
 -+		$ret = NULL;
 -+		if(isset($this->options[$name]))
 -+			$ret =& $this->options[$name];
 -+	return $ret;
 -+	}
 - 
 --			insert_showhint_javascript();
 -+	function setHint($text, $width='', $class=''){
 -+		if(empty($text)) return false;
 - 
 --			$text = unpack_object($text);
 --			if($width != '' || $class != ''){
 --				$code = "show_hint_ext(this,event,'".$text."','".$width."','".$class."');";
 --			}
 --			else{
 --				$code = "show_hint(this,event,'".$text."');";
 --			}
 -+		insert_showhint_javascript();
 - 
 --			$this->AddAction('onMouseOver',	$code);
 --			$this->AddAction('onMouseMove',	'update_hint(this,event);');
 -+		$text = unpack_object($text);
 -+		if($width != '' || $class != ''){
 -+			$code = "show_hint_ext(this,event,'".$text."','".$width."','".$class."');";
 - 		}
 --
 --		function OnClick($handle_code){
 --			$this->AddAction('onclick', $handle_code);
 -+		else{
 -+			$code = "show_hint(this,event,'".$text."');";
 - 		}
 - 
 --		function AddAction($name, $value){
 --			if(is_object($value)){
 --				$this->options[$name] = unpack_object($value);
 --			}
 --			else if(!empty($value)){
 --				$this->options[$name] = htmlentities(str_replace(array("\r", "\n"), '', strval($value)),ENT_COMPAT,S_HTML_CHARSET);
 --			}
 -+		$this->addAction('onMouseOver',	$code);
 -+		$this->addAction('onMouseMove',	'update_hint(this,event);');
 -+	}
 -+
 -+	function onClick($handle_code){
 -+		$this->addAction('onclick', $handle_code);
 -+	}
 -+
 -+	function addAction($name, $value){
 -+		if(is_object($value)){
 -+			$this->options[$name] = unpack_object($value);
 - 		}
 -+		else if(!empty($value)){
 -+			$this->options[$name] = htmlentities(str_replace(array("\r", "\n"), '', strval($value)),ENT_COMPAT,S_HTML_CHARSET);
 -+		}
 -+	}
 - 
 --		function AddOption($name, $value){
 --			if(is_object($value)){
 --				$this->options[$name] = unpack_object($value);
 --			}
 --			else if(isset($value))
 --				$this->options[$name] = htmlspecialchars(strval($value)); 
 --			else
 --				unset($this->options[$name]);
 -+	function addOption($name, $value){
 -+		if(is_object($value)){
 -+			$this->options[$name] = unpack_object($value);
 - 		}
 -+		else if(isset($value))
 -+			$this->options[$name] = htmlspecialchars(strval($value)); 
 -+		else
 -+			unset($this->options[$name]);
 -+	}
 - 
 --		function SetEnabled($value='yes'){
 --			if((is_string($value) && ($value == 'yes' || $value == 'enabled' || $value=='on') || $value=='1')
 --				|| (is_int($value) && $value<>0))
 --			{
 --				unset($this->options['disabled']);
 --			}
 --			else if((is_string($value) && ($value == 'no' || $value == 'disabled' || $value=='off') || $value=='0')
 --				|| (is_int($value) && $value==0))
 --			{
 --				$this->options['disabled'] = 'disabled';
 --			}
 -+	function setEnabled($value='yes'){
 -+		if((is_string($value) && ($value == 'yes' || $value == 'enabled' || $value=='on') || $value=='1')
 -+			|| (is_int($value) && $value<>0))
 -+		{
 -+			unset($this->options['disabled']);
 - 		}
 --		
 --		function error($value){
 --			error('class('.get_class($this).') - '.$value);
 --			return 1;
 -+		else if((is_string($value) && ($value == 'no' || $value == 'disabled' || $value=='off') || $value=='0')
 -+			|| (is_int($value) && $value==0))
 -+		{
 -+			$this->options['disabled'] = 'disabled';
 - 		}
 - 	}
 --?>
 -+	
 -+	function error($value){
 -+		error('class('.get_class($this).') - '.$value);
 -+		return 1;
 -+	}
 -+}
 -+?>
 -\ No newline at end of file
 -Index: frontends/php/include/classes/cmap.inc.php
 -===================================================================
 ---- frontends/php/include/classes/cmap.inc.php	(revision 6643)
 -+++ frontends/php/include/classes/cmap.inc.php	(revision 6644)
 -@@ -19,78 +19,75 @@
 - **/
 - ?>
 - <?php
 --	class CMap extends CTag
 --	{
 -+class CMap extends CTag{
 - /* public */
 --		function CMap($name="")
 --		{
 --			parent::CTag("map","yes");
 --			$this->SetName($name);
 --		}
 --		function AddRectArea($x1,$y1,$x2,$y2,$href,$alt)
 --		{ 
 --			return $this->AddArea(array($x1,$y1,$x2,$y2),$href,$alt,'rect'); 
 --		}
 --		function AddArea($coords,$href,$alt,$shape)
 --		{
 --			return $this->AddItem(new CArea($coords,$href,$alt,$shape));
 --		}
 --		function AddItem($value)
 --		{
 --			if(strtolower(get_class($value)) != 'carea')
 --				return $this->error("Incorrect value for AddItem [$value]");
 -+	function CMap($name=''){
 -+		parent::CTag('map','yes');
 -+		$this->setName($name);
 -+	}
 -+	
 -+	function addRectArea($x1,$y1,$x2,$y2,$href,$alt){ 
 -+		return $this->addArea(array($x1,$y1,$x2,$y2),$href,$alt,'rect'); 
 -+	}
 -+	
 -+	function addArea($coords,$href,$alt,$shape){
 -+		return $this->addItem(new CArea($coords,$href,$alt,$shape));
 -+	}
 -+	
 -+	function addItem($value){
 -+		if(strtolower(get_class($value)) != 'carea')
 -+			return $this->error('Incorrect value for addItem ['.$value.']');
 - 
 --			return parent::AddItem($value);
 --		}
 -+		return parent::addItem($value);
 - 	}
 -+}
 - 
 --	class CArea extends CTag
 --	{
 --		function CArea($coords,$href,$alt,$shape)
 --		{
 --			parent::CTag("area","no");
 --			$this->SetCoords($coords);
 --			$this->SetShape($shape);
 --			$this->SetHref($href);
 --			$this->SetAlt($alt);
 --		}
 --		function SetCoords($value)
 --		{
 --			if(!is_array($value))
 --				return $this->error("Incorrect value for SetCoords [$value]");
 --			if(count($value)<3)
 --				return $this->error("Incorrect values count for SetCoords [".count($value)."]");
 -+class CArea extends CTag{
 -+	function CArea($coords,$href,$alt,$shape){
 -+		parent::CTag('area','no');
 -+		$this->setCoords($coords);
 -+		$this->setShape($shape);
 -+		$this->setHref($href);
 -+		$this->setAlt($alt);
 -+	}
 -+	
 -+	function setCoords($value){
 -+		if(!is_array($value))
 -+			return $this->error('Incorrect value for setCoords ['.$value.']');
 -+		if(count($value)<3)
 -+			return $this->error('Incorrect values count for setCoords ['.count($value).']');
 - 
 --			$str_val = "";
 --			foreach($value as $val)
 --			{
 --				if(!is_numeric($val))
 --					return $this->error("Incorrect value for SetCoords [$val]");
 -+		$str_val = '';
 -+		foreach($value as $val){
 -+			if(!is_numeric($val))
 -+				return $this->error('Incorrect value for setCoords ['.$val.']');
 - 
 --				$str_val .= $val.",";
 --			}
 --			$this->AddOption("coords",trim($str_val,','));
 -+			$str_val .= $val.',';
 - 		}
 --		function SetShape($value)
 --		{
 --			if(!is_string($value))
 --				return $this->error("Incorrect value for SetShape [$value]");
 -+		$this->addOption('coords',trim($str_val,','));
 -+	}
 - 
 --			$this->AddOption("shape",$value);
 --		}
 --		function SetHref($value)
 --		{
 --			if(!is_string($value))
 --				return $this->error("Incorrect value for SetHref [$value]");
 -+	function setShape($value){
 -+		if(!is_string($value))
 -+			return $this->error('Incorrect value for setShape ['.$value.']');
 - 
 --			$this->AddOption("href",$value);
 --		}
 --		function SetAlt($value)
 --		{
 --			if(!is_string($value))
 --				return $this->error("Incorrect value for SetAlt [$value]");
 -+		$this->addOption('shape',$value);
 -+	}
 - 
 --			$this->AddOption("alt",$value);
 --		}
 -+	function setHref($value){
 -+		if(!is_string($value))
 -+			return $this->error('Incorrect value for setHref ['.$value.']');
 -+		$url = new Curl($value);
 -+		$value = $url->getUrl();
 -+		
 -+		$this->addOption('href',$value);
 - 	}
 --?>
 -+	
 -+	function setAlt($value){
 -+		if(!is_string($value))
 -+			return $this->error('Incorrect value for setAlt ['.$value.']');
 -+
 -+		$this->addOption('alt',$value);
 -+	}
 -+}
 -+?>
 -\ No newline at end of file
 -Index: frontends/php/include/html.inc.php
 -===================================================================
 ---- frontends/php/include/html.inc.php	(revision 6643)
 -+++ frontends/php/include/html.inc.php	(revision 6644)
 -@@ -58,7 +58,7 @@
 - 	}
 - 
 - 	function prepare_url(&$var, $varname=null){
 --		$result = "";
 -+		$result = '';
 - 
 - 		if(is_array($var)){
 - 			foreach($var as $id => $par)
 -Index: frontends/php/items.php
 -===================================================================
 ---- frontends/php/items.php	(revision 6643)
 -+++ frontends/php/items.php	(revision 6644)
 -@@ -944,16 +944,17 @@
 - //				url_param('groupid'),
 - 				'action'));
 - 
 --			$status=new CCol(new CLink(item_status2str($db_item["status"]),
 --					"?group_itemid%5B%5D=".$db_item["itemid"].
 --					"&group_task=".($db_item["status"] ? "Activate+selected" : "Disable+selected"),
 --					item_status2style($db_item["status"])));
 -+			$status=new CCol(new CLink(item_status2str($db_item['status']),
 -+//					'?sessionid='.$USER_DETAILS['sessionid'].
 -+					'?group_itemid%5B%5D='.$db_item['itemid'].
 -+					'&group_task='.($db_item['status']?'Activate+selected':'Disable+selected'),
 -+					item_status2style($db_item['status'])));
 - 	
 --			if($db_item["error"] == ''){
 --				$error=new CCol('-',"off");
 -+			if($db_item['error'] == ''){
 -+				$error=new CCol('-','off');
 - 			}
 - 			else{
 --				$error=new CCol($db_item["error"],"on");
 -+				$error=new CCol($db_item['error'],'on');
 - 			}
 - 			
 - 			$applications = $show_applications ? implode(', ', get_applications_by_itemid($db_item["itemid"], 'name')) : null;
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/files/patch-configure /root/portwork/zabbix/files/patch-configure
 --- /usr/ports/net-mgmt/zabbix/files/patch-configure	2009-02-26 05:59:19.000000000 -0600
 +++ /root/portwork/zabbix/files/patch-configure	2009-03-28 13:23:56.000000000 -0500
 @@ -1,12 +1,12 @@
 ---- configure.orig	2009-01-16 06:20:00.000000000 -0600
 -+++ configure	2009-01-22 17:23:46.000000000 -0600
 -@@ -275,6 +275,9 @@
 +--- configure.orig	2009-03-28 13:23:22.000000000 -0500
 ++++ configure	2009-03-28 13:23:40.000000000 -0500
 +@@ -580,6 +580,9 @@
   # Factoring default headers for most tests.
   ac_includes_default="\
   #include <stdio.h>
  +#include <sys/socket.h>
  +#include <sys/param.h>
  +#include <netinet/in.h>
 - #if HAVE_SYS_TYPES_H
 + #ifdef HAVE_SYS_TYPES_H
   # include <sys/types.h>
   #endif
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/files/patch-frontends:php:include:import.inc.php /root/portwork/zabbix/files/patch-frontends:php:include:import.inc.php
 --- /usr/ports/net-mgmt/zabbix/files/patch-frontends:php:include:import.inc.php	1969-12-31 18:00:00.000000000 -0600
 +++ /root/portwork/zabbix/files/patch-frontends:php:include:import.inc.php	2009-04-01 07:20:21.000000000 -0500
 @@ -0,0 +1,11 @@
 +--- frontends/php/include/import.inc.php.orig	2009-04-01 07:19:20.000000000 -0500
 ++++ frontends/php/include/import.inc.php	2009-04-01 07:19:38.000000000 -0500
 +@@ -507,7 +507,7 @@
 + 							$data['applications'] = array_unique(array_merge($data['applications'],get_applications_by_itemid($item['itemid'])));
 + 							$data['templateid'] = $item['templateid'];
 + 							
 +-							check_db_fields($item, $data));
 ++							check_db_fields($item, $data);
 + 							
 + 						update_item($item['itemid'], $data);
 + 					}
 diff -ruN --exclude=CVS /usr/ports/net-mgmt/zabbix/pkg-plist /root/portwork/zabbix/pkg-plist
 --- /usr/ports/net-mgmt/zabbix/pkg-plist	2009-03-23 10:06:19.000000000 -0500
 +++ /root/portwork/zabbix/pkg-plist	2009-03-28 13:38:33.000000000 -0500
 @@ -1,344 +1,341 @@
  bin/zabbix_server
  %%ETCDIR%%/zabbix_server.conf.sample
 -%%DATADIR%%/php/styles/popupmenu.css
 -%%DATADIR%%/php/styles/css_ob.css
 -%%DATADIR%%/php/styles/calendar.css
 -%%DATADIR%%/php/styles/css_bb.css
 -%%DATADIR%%/php/styles/gmenu.css
 -%%DATADIR%%/php/styles/sbox.css
 -%%DATADIR%%/php/styles/link.css
 -%%DATADIR%%/php/styles/p.css
 -%%DATADIR%%/php/styles/ul.css
 -%%DATADIR%%/php/styles/div.css
 -%%DATADIR%%/php/styles/form.css
 -%%DATADIR%%/php/styles/bar.css
 -%%DATADIR%%/php/styles/default.css
 -%%DATADIR%%/php/styles/table.css
 -%%DATADIR%%/php/audio/trigger_on_warning.wav
 -%%DATADIR%%/php/audio/trigger_on_average.wav
 +%%DATADIR%%/create/data/data.sql
 +%%DATADIR%%/create/data/images/Hub.png
 +%%DATADIR%%/create/data/images/Hub_small.png
 +%%DATADIR%%/create/data/images/Network.png
 +%%DATADIR%%/create/data/images/Network_small.png
 +%%DATADIR%%/create/data/images/Notebook.png
 +%%DATADIR%%/create/data/images/Notebook_small.png
 +%%DATADIR%%/create/data/images/Phone.png
 +%%DATADIR%%/create/data/images/Phone_small.png
 +%%DATADIR%%/create/data/images/Printer.png
 +%%DATADIR%%/create/data/images/Printer_small.png
 +%%DATADIR%%/create/data/images/Router.png
 +%%DATADIR%%/create/data/images/Router_small.png
 +%%DATADIR%%/create/data/images/Satellite.png
 +%%DATADIR%%/create/data/images/Satellite_small.png
 +%%DATADIR%%/create/data/images/Server.png
 +%%DATADIR%%/create/data/images/Server_small.png
 +%%DATADIR%%/create/data/images/UPS.png
 +%%DATADIR%%/create/data/images/UPS_small.png
 +%%DATADIR%%/create/data/images/Workstation.png
 +%%DATADIR%%/create/data/images/Workstation_small.png
 +%%DATADIR%%/create/data/images_mysql.sql
 +%%DATADIR%%/create/data/images_oracle.sql
 +%%DATADIR%%/create/data/images_pgsql.sql
 +%%DATADIR%%/create/data/images_sqlite3.sql
 +%%DATADIR%%/create/schema/mysql.sql
 +%%DATADIR%%/create/schema/oracle.sql
 +%%DATADIR%%/create/schema/postgresql.sql
 +%%DATADIR%%/create/schema/sqlite.sql
 +%%DATADIR%%/dbpatches/1.6/mysql/patch.sql
 +%%DATADIR%%/dbpatches/1.6/oracle/patch.sql
 +%%DATADIR%%/dbpatches/1.6/postgresql/patch.sql
 +%%DATADIR%%/php/acknow.php
 +%%DATADIR%%/php/actionconf.php
  %%DATADIR%%/php/audio/trigger_off.wav
 +%%DATADIR%%/php/audio/trigger_on.wav
 +%%DATADIR%%/php/audio/trigger_on_average.wav
  %%DATADIR%%/php/audio/trigger_on_disaster.wav
  %%DATADIR%%/php/audio/trigger_on_high.wav
 -%%DATADIR%%/php/audio/trigger_on.wav
 -%%DATADIR%%/php/js/updater.js
 -%%DATADIR%%/php/js/menu.js
 -%%DATADIR%%/php/js/menu_scripts.js
 -%%DATADIR%%/php/js/prototype.js
 -%%DATADIR%%/php/js/calendar.js
 -%%DATADIR%%/php/js/sbox.js
 -%%DATADIR%%/php/js/services.js
 -%%DATADIR%%/php/js/gmenu.js
 -%%DATADIR%%/php/js/gpc.js
 -%%DATADIR%%/php/js/chkbxrange.js
 -%%DATADIR%%/php/js/scrollbar.js
 -%%DATADIR%%/php/js/graphs.js
 -%%DATADIR%%/php/js/sbinit.js
 -%%DATADIR%%/php/js/common.js
 -%%DATADIR%%/php/js/ajax_req.js
 -%%DATADIR%%/php/js/blink.js
 -%%DATADIR%%/php/js/tree.js
 -%%DATADIR%%/php/js/showhint.js
 -%%DATADIR%%/php/include/locales/cn_zh.inc.php
 -%%DATADIR%%/php/include/locales/lv_lv.inc.php
 -%%DATADIR%%/php/include/locales/nl_nl.inc.php
 -%%DATADIR%%/php/include/locales/ja_jp.inc.php
 -%%DATADIR%%/php/include/locales/sp_sp.inc.php
 -%%DATADIR%%/php/include/locales/ko_kr.inc.php
 -%%DATADIR%%/php/include/locales/pt_br.inc.php
 -%%DATADIR%%/php/include/locales/hu_hu.inc.php
 -%%DATADIR%%/php/include/locales/it_it.inc.php
 -%%DATADIR%%/php/include/locales/en_gb.inc.php
 -%%DATADIR%%/php/include/locales/ru_ru.inc.php
 -%%DATADIR%%/php/include/locales/fr_fr.inc.php
 -%%DATADIR%%/php/include/locales/sv_se.inc.php
 -%%DATADIR%%/php/include/locales/de_de.inc.php
 -%%DATADIR%%/php/include/classes/cflashclock.mod.php
 -%%DATADIR%%/php/include/classes/ccolor.inc.php
 -%%DATADIR%%/php/include/classes/ctriggerinfo.mod.php
 -%%DATADIR%%/php/include/classes/cldap.inc.php
 -%%DATADIR%%/php/include/classes/ccheckbox.inc.php
 -%%DATADIR%%/php/include/classes/ctable.inc.php
 -%%DATADIR%%/php/include/classes/cvar.inc.php
 -%%DATADIR%%/php/include/classes/cserverinfo.mod.php
 -%%DATADIR%%/php/include/classes/cflash.inc.php
 -%%DATADIR%%/php/include/classes/ctree.inc.php
 -%%DATADIR%%/php/include/classes/ctableinfo.inc.php
 -%%DATADIR%%/php/include/classes/ccombobox.inc.php
 -%%DATADIR%%/php/include/classes/.htaccess
 -%%DATADIR%%/php/include/classes/clist.inc.php
 -%%DATADIR%%/php/include/classes/ctextarea.inc.php
 -%%DATADIR%%/php/include/classes/cfile.inc.php
 -%%DATADIR%%/php/include/classes/chostsinfo.mod.php
 -%%DATADIR%%/php/include/classes/chelp.inc.php
 -%%DATADIR%%/php/include/classes/clink.inc.php
 -%%DATADIR%%/php/include/classes/ctextbox.inc.php
 -%%DATADIR%%/php/include/classes/graph.inc.php
 -%%DATADIR%%/php/include/classes/chart.inc.php
 -%%DATADIR%%/php/include/classes/cspan.inc.php
 -%%DATADIR%%/php/include/classes/cform.inc.php
 -%%DATADIR%%/php/include/classes/ciframe.inc.php
 -%%DATADIR%%/php/include/classes/cscript.inc.php
 -%%DATADIR%%/php/include/classes/cpumenu.inc.php
 -%%DATADIR%%/php/include/classes/curl.inc.php
 -%%DATADIR%%/php/include/classes/pie.inc.php
 -%%DATADIR%%/php/include/classes/ctag.inc.php
 -%%DATADIR%%/php/include/classes/cbutton.inc.php
 -%%DATADIR%%/php/include/classes/cformtable.inc.php
 -%%DATADIR%%/php/include/classes/cimg.inc.php
 -%%DATADIR%%/php/include/classes/cmap.inc.php
 -%%DATADIR%%/php/include/discovery.inc.php
 -%%DATADIR%%/php/include/page_footer.php
 -%%DATADIR%%/php/include/acknow.inc.php
 -%%DATADIR%%/php/include/forms.inc.php
 -%%DATADIR%%/php/include/triggers.inc.php
 -%%DATADIR%%/php/include/func.inc.php
 -%%DATADIR%%/php/include/actions.inc.php
 -%%DATADIR%%/php/include/setup.inc.php
 -%%DATADIR%%/php/include/copt.lib.php
 -%%DATADIR%%/php/include/screens.inc.php
 -%%DATADIR%%/php/include/perm.inc.php
 -%%DATADIR%%/php/include/config.inc.php
 -%%DATADIR%%/php/include/import.inc.php
 -%%DATADIR%%/php/include/page_header.php
 -%%DATADIR%%/php/include/blocks.inc.php
 -%%DATADIR%%/php/include/defines.inc.php
 -%%DATADIR%%/php/include/.htaccess
 -%%DATADIR%%/php/include/media.inc.php
 -%%DATADIR%%/php/include/db.inc.php
 -%%DATADIR%%/php/include/items.inc.php
 -%%DATADIR%%/php/include/export.inc.php
 -%%DATADIR%%/php/include/locales.inc.php
 -%%DATADIR%%/php/include/profiles.inc.php
 -%%DATADIR%%/php/include/services.inc.php
 -%%DATADIR%%/php/include/graphs.inc.php
 -%%DATADIR%%/php/include/scripts.inc.php
 -%%DATADIR%%/php/include/validate.inc.php
 -%%DATADIR%%/php/include/reports.inc.php
 -%%DATADIR%%/php/include/maps.inc.php
 -%%DATADIR%%/php/include/hosts.inc.php
 -%%DATADIR%%/php/include/users.inc.php
 -%%DATADIR%%/php/include/html.inc.php
 -%%DATADIR%%/php/include/events.inc.php
 -%%DATADIR%%/php/include/images.inc.php
 -%%DATADIR%%/php/include/audit.inc.php
 -%%DATADIR%%/php/include/nodes.inc.php
 -%%DATADIR%%/php/include/js.inc.php
 -%%DATADIR%%/php/include/httptest.inc.php
 -%%DATADIR%%/php/conf/maintenance.inc.php
 +%%DATADIR%%/php/audio/trigger_on_warning.wav
 +%%DATADIR%%/php/audit.php
 +%%DATADIR%%/php/authentication.php
 +%%DATADIR%%/php/chart.php
 +%%DATADIR%%/php/chart2.php
 +%%DATADIR%%/php/chart3.php
 +%%DATADIR%%/php/chart4.php
 +%%DATADIR%%/php/chart5.php
 +%%DATADIR%%/php/chart6.php
 +%%DATADIR%%/php/chart7.php
 +%%DATADIR%%/php/chart_sla.php
 +%%DATADIR%%/php/charts.php
  %%DATADIR%%/php/conf/COPYING
 -%%DATADIR%%/php/images/sysmaps/old/Notebook.png
 -%%DATADIR%%/php/images/sysmaps/old/Hub.png
 -%%DATADIR%%/php/images/sysmaps/old/Workstation.png
 -%%DATADIR%%/php/images/sysmaps/old/Router.png
 -%%DATADIR%%/php/images/sysmaps/old/Printer.png
 -%%DATADIR%%/php/images/sysmaps/old/Server.png
 -%%DATADIR%%/php/images/sysmaps/Notebook_small.png
 -%%DATADIR%%/php/images/sysmaps/Server_small.png
 -%%DATADIR%%/php/images/sysmaps/UPS_small.png
 -%%DATADIR%%/php/images/sysmaps/Phone_small.png
 -%%DATADIR%%/php/images/sysmaps/Server.png
 -%%DATADIR%%/php/images/sysmaps/Hub_small.png
 -%%DATADIR%%/php/images/sysmaps/UPS.png
 -%%DATADIR%%/php/images/sysmaps/Router_small.png
 -%%DATADIR%%/php/images/sysmaps/Workstation.png
 -%%DATADIR%%/php/images/sysmaps/Phone.png
 -%%DATADIR%%/php/images/sysmaps/README
 -%%DATADIR%%/php/images/sysmaps/Workstation_small.png
 -%%DATADIR%%/php/images/sysmaps/Printer_small.png
 -%%DATADIR%%/php/images/sysmaps/Hub.png
 -%%DATADIR%%/php/images/sysmaps/Satellite_small.png
 -%%DATADIR%%/php/images/sysmaps/Router.png
 -%%DATADIR%%/php/images/sysmaps/Notebook.png
 -%%DATADIR%%/php/images/sysmaps/Printer.png
 -%%DATADIR%%/php/images/sysmaps/Network_small.png
 -%%DATADIR%%/php/images/sysmaps/Satellite.png
 -%%DATADIR%%/php/images/sysmaps/Network.png
 -%%DATADIR%%/php/images/gradients/table_head.gif
 -%%DATADIR%%/php/images/gradients/button.gif
 -%%DATADIR%%/php/images/gradients/gradient.png
 -%%DATADIR%%/php/images/gradients/table_head_bb.gif
 -%%DATADIR%%/php/images/gradients/blink1.gif
 -%%DATADIR%%/php/images/gradients/table_head2_bb.gif
 -%%DATADIR%%/php/images/gradients/menu_not_active.gif
 -%%DATADIR%%/php/images/gradients/blink2.gif
 -%%DATADIR%%/php/images/gradients/menu_not_active_bb.gif
 -%%DATADIR%%/php/images/gradients/table_head2.gif
 +%%DATADIR%%/php/conf/maintenance.inc.php
 +%%DATADIR%%/php/config.php
 +%%DATADIR%%/php/create/data.sql
 +%%DATADIR%%/php/create/mysql.sql
 +%%DATADIR%%/php/css.css
 +%%DATADIR%%/php/dashboard.php
 +%%DATADIR%%/php/discovery.php
 +%%DATADIR%%/php/discoveryconf.php
 +%%DATADIR%%/php/events.php
 +%%DATADIR%%/php/exp_imp.php
 +%%DATADIR%%/php/graphs.php
 +%%DATADIR%%/php/history.php
 +%%DATADIR%%/php/hostprofiles.php
 +%%DATADIR%%/php/hosts.php
 +%%DATADIR%%/php/httpconf.php
 +%%DATADIR%%/php/httpdetails.php
 +%%DATADIR%%/php/httpmon.php
 +%%DATADIR%%/php/image.php
  %%DATADIR%%/php/images/flash/zbxclock.swf
 -%%DATADIR%%/php/images/general/tree/minus.gif
 -%%DATADIR%%/php/images/general/tree/pointc.gif
 -%%DATADIR%%/php/images/general/tree/zero.gif
 -%%DATADIR%%/php/images/general/tree/plus.gif
 -%%DATADIR%%/php/images/general/tree/pointl.gif
 -%%DATADIR%%/php/images/general/tree/point.gif
  %%DATADIR%%/php/images/general/bar/arrow_down.gif
 +%%DATADIR%%/php/images/general/bar/arrow_l.gif
  %%DATADIR%%/php/images/general/bar/arrow_r.gif
 -%%DATADIR%%/php/images/general/bar/bar_bg.gif
 -%%DATADIR%%/php/images/general/bar/right.gif
 +%%DATADIR%%/php/images/general/bar/arrow_sm.gif
  %%DATADIR%%/php/images/general/bar/arrow_up.gif
 +%%DATADIR%%/php/images/general/bar/bar_bg.gif
  %%DATADIR%%/php/images/general/bar/bar_left.gif
 -%%DATADIR%%/php/images/general/bar/cal.gif
 -%%DATADIR%%/php/images/general/bar/bar_right.gif
  %%DATADIR%%/php/images/general/bar/bar_middle.gif
 -%%DATADIR%%/php/images/general/bar/arrow_l.gif
 +%%DATADIR%%/php/images/general/bar/bar_right.gif
  %%DATADIR%%/php/images/general/bar/bg.gif
 -%%DATADIR%%/php/images/general/bar/arrow_sm.gif
 +%%DATADIR%%/php/images/general/bar/cal.gif
  %%DATADIR%%/php/images/general/bar/left.gif
 -%%DATADIR%%/php/images/general/bttn/fullscreen.png
 -%%DATADIR%%/php/images/general/bttn/minus_bb.png
 +%%DATADIR%%/php/images/general/bar/right.gif
 +%%DATADIR%%/php/images/general/bttn/arrowdown.png
 +%%DATADIR%%/php/images/general/bttn/arrowdown_bb.png
  %%DATADIR%%/php/images/general/bttn/arrowup.png
 -%%DATADIR%%/php/images/general/bttn/fullscreen_bb.png
  %%DATADIR%%/php/images/general/bttn/arrowup_bb.png
 +%%DATADIR%%/php/images/general/bttn/down.png
 +%%DATADIR%%/php/images/general/bttn/down_bb.png
 +%%DATADIR%%/php/images/general/bttn/fullscreen.png
 +%%DATADIR%%/php/images/general/bttn/fullscreen_bb.png
 +%%DATADIR%%/php/images/general/bttn/help.png
 +%%DATADIR%%/php/images/general/bttn/help_bb.png
  %%DATADIR%%/php/images/general/bttn/menu.png
 -%%DATADIR%%/php/images/general/bttn/arrowdown.png
  %%DATADIR%%/php/images/general/bttn/menu_bb.png
 +%%DATADIR%%/php/images/general/bttn/minus.png
 +%%DATADIR%%/php/images/general/bttn/minus_bb.png
  %%DATADIR%%/php/images/general/bttn/mute.png
  %%DATADIR%%/php/images/general/bttn/mute_bb.png
 -%%DATADIR%%/php/images/general/bttn/arrowdown_bb.png
 -%%DATADIR%%/php/images/general/bttn/reset.png
  %%DATADIR%%/php/images/general/bttn/plus.png
 -%%DATADIR%%/php/images/general/bttn/reset_bb.png
  %%DATADIR%%/php/images/general/bttn/plus_bb.png
 -%%DATADIR%%/php/images/general/bttn/help.png
 +%%DATADIR%%/php/images/general/bttn/reset.png
 +%%DATADIR%%/php/images/general/bttn/reset_bb.png
  %%DATADIR%%/php/images/general/bttn/sound.png
 -%%DATADIR%%/php/images/general/bttn/minus.png
 -%%DATADIR%%/php/images/general/bttn/help_bb.png
  %%DATADIR%%/php/images/general/bttn/sound_bb.png
 -%%DATADIR%%/php/images/general/bttn/down.png
 -%%DATADIR%%/php/images/general/bttn/down_bb.png
  %%DATADIR%%/php/images/general/bttn/up.png
  %%DATADIR%%/php/images/general/bttn/up_bb.png
 -%%DATADIR%%/php/images/general/inst_current.gif
 -%%DATADIR%%/php/images/general/sortdown.gif
 -%%DATADIR%%/php/images/general/error_small.gif
  %%DATADIR%%/php/images/general/chart.png
 -%%DATADIR%%/php/images/general/trigg_dep.png
 -%%DATADIR%%/php/images/general/sort_upw.gif
 -%%DATADIR%%/php/images/general/sortup_off.gif
 -%%DATADIR%%/php/images/general/zabbix.ico
 -%%DATADIR%%/php/images/general/warning_small.gif
 -%%DATADIR%%/php/images/general/zabbix_bb.ico
 +%%DATADIR%%/php/images/general/closed.gif
 +%%DATADIR%%/php/images/general/down_icon.png
 +%%DATADIR%%/php/images/general/error_small.gif
  %%DATADIR%%/php/images/general/help.gif
 -%%DATADIR%%/php/images/general/sortup.gif
  %%DATADIR%%/php/images/general/inst_completed.gif
 -%%DATADIR%%/php/images/general/warning16r.gif
 -%%DATADIR%%/php/images/general/zabbix.png
 -%%DATADIR%%/php/images/general/zabbix_bb.png
 -%%DATADIR%%/php/images/general/trigg_dep.gif
 -%%DATADIR%%/php/images/general/zabbix_ob.ico
 -%%DATADIR%%/php/images/general/closed.gif
 -%%DATADIR%%/php/images/general/sort_downw.gif
 +%%DATADIR%%/php/images/general/inst_current.gif
  %%DATADIR%%/php/images/general/inst_step.gif
 +%%DATADIR%%/php/images/general/opened.gif
 +%%DATADIR%%/php/images/general/sort_downw.gif
 +%%DATADIR%%/php/images/general/sort_upw.gif
 +%%DATADIR%%/php/images/general/sortdown.gif
  %%DATADIR%%/php/images/general/sortdown_off.gif
 +%%DATADIR%%/php/images/general/sortup.gif
 +%%DATADIR%%/php/images/general/sortup_off.gif
  %%DATADIR%%/php/images/general/tick.png
 -%%DATADIR%%/php/images/general/opened.gif
 +%%DATADIR%%/php/images/general/tree/minus.gif
 +%%DATADIR%%/php/images/general/tree/plus.gif
 +%%DATADIR%%/php/images/general/tree/point.gif
 +%%DATADIR%%/php/images/general/tree/pointc.gif
 +%%DATADIR%%/php/images/general/tree/pointl.gif
 +%%DATADIR%%/php/images/general/tree/zero.gif
 +%%DATADIR%%/php/images/general/trigg_dep.gif
 +%%DATADIR%%/php/images/general/trigg_dep.png
  %%DATADIR%%/php/images/general/up_icon.png
 -%%DATADIR%%/php/images/general/down_icon.png
 -%%DATADIR%%/php/create/mysql.sql
 -%%DATADIR%%/php/create/data.sql
 -%%DATADIR%%/php/discoveryconf.php
 -%%DATADIR%%/php/tr_comments.php
 +%%DATADIR%%/php/images/general/warning16r.gif
 +%%DATADIR%%/php/images/general/warning_small.gif
 +%%DATADIR%%/php/images/general/zabbix.ico
 +%%DATADIR%%/php/images/general/zabbix.png
 +%%DATADIR%%/php/images/general/zabbix_bb.ico
 +%%DATADIR%%/php/images/general/zabbix_bb.png
 +%%DATADIR%%/php/images/general/zabbix_ob.ico
 +%%DATADIR%%/php/images/gradients/blink1.gif
 +%%DATADIR%%/php/images/gradients/blink2.gif
 +%%DATADIR%%/php/images/gradients/button.gif
 +%%DATADIR%%/php/images/gradients/gradient.png
 +%%DATADIR%%/php/images/gradients/menu_not_active.gif
 +%%DATADIR%%/php/images/gradients/menu_not_active_bb.gif
 +%%DATADIR%%/php/images/gradients/table_head.gif
 +%%DATADIR%%/php/images/gradients/table_head2.gif
 +%%DATADIR%%/php/images/gradients/table_head2_bb.gif
 +%%DATADIR%%/php/images/gradients/table_head_bb.gif
 +%%DATADIR%%/php/images/sysmaps/Hub.png
 +%%DATADIR%%/php/images/sysmaps/Hub_small.png
 +%%DATADIR%%/php/images/sysmaps/Network.png
 +%%DATADIR%%/php/images/sysmaps/Network_small.png
 +%%DATADIR%%/php/images/sysmaps/Notebook.png
 +%%DATADIR%%/php/images/sysmaps/Notebook_small.png
 +%%DATADIR%%/php/images/sysmaps/Phone.png
 +%%DATADIR%%/php/images/sysmaps/Phone_small.png
 +%%DATADIR%%/php/images/sysmaps/Printer.png
 +%%DATADIR%%/php/images/sysmaps/Printer_small.png
 +%%DATADIR%%/php/images/sysmaps/README
 +%%DATADIR%%/php/images/sysmaps/Router.png
 +%%DATADIR%%/php/images/sysmaps/Router_small.png
 +%%DATADIR%%/php/images/sysmaps/Satellite.png
 +%%DATADIR%%/php/images/sysmaps/Satellite_small.png
 +%%DATADIR%%/php/images/sysmaps/Server.png
 +%%DATADIR%%/php/images/sysmaps/Server_small.png
 +%%DATADIR%%/php/images/sysmaps/UPS.png
 +%%DATADIR%%/php/images/sysmaps/UPS_small.png
 +%%DATADIR%%/php/images/sysmaps/Workstation.png
 +%%DATADIR%%/php/images/sysmaps/Workstation_small.png
 +%%DATADIR%%/php/images/sysmaps/old/Hub.png
 +%%DATADIR%%/php/images/sysmaps/old/Notebook.png
 +%%DATADIR%%/php/images/sysmaps/old/Printer.png
 +%%DATADIR%%/php/images/sysmaps/old/Router.png
 +%%DATADIR%%/php/images/sysmaps/old/Server.png
 +%%DATADIR%%/php/images/sysmaps/old/Workstation.png
 +%%DATADIR%%/php/include/.htaccess
 +%%DATADIR%%/php/include/acknow.inc.php
 +%%DATADIR%%/php/include/actions.inc.php
 +%%DATADIR%%/php/include/audit.inc.php
 +%%DATADIR%%/php/include/blocks.inc.php
 +%%DATADIR%%/php/include/classes/.htaccess
 +%%DATADIR%%/php/include/classes/cbutton.inc.php
 +%%DATADIR%%/php/include/classes/ccheckbox.inc.php
 +%%DATADIR%%/php/include/classes/ccolor.inc.php
 +%%DATADIR%%/php/include/classes/ccombobox.inc.php
 +%%DATADIR%%/php/include/classes/cfile.inc.php
 +%%DATADIR%%/php/include/classes/cflash.inc.php
 +%%DATADIR%%/php/include/classes/cflashclock.mod.php
 +%%DATADIR%%/php/include/classes/cform.inc.php
 +%%DATADIR%%/php/include/classes/cformtable.inc.php
 +%%DATADIR%%/php/include/classes/chart.inc.php
 +%%DATADIR%%/php/include/classes/chelp.inc.php
 +%%DATADIR%%/php/include/classes/chostsinfo.mod.php
 +%%DATADIR%%/php/include/classes/ciframe.inc.php
 +%%DATADIR%%/php/include/classes/cimg.inc.php
 +%%DATADIR%%/php/include/classes/cldap.inc.php
 +%%DATADIR%%/php/include/classes/clink.inc.php
 +%%DATADIR%%/php/include/classes/clist.inc.php
 +%%DATADIR%%/php/include/classes/cmap.inc.php
 +%%DATADIR%%/php/include/classes/cpumenu.inc.php
 +%%DATADIR%%/php/include/classes/cscript.inc.php
 +%%DATADIR%%/php/include/classes/cserverinfo.mod.php
 +%%DATADIR%%/php/include/classes/cspan.inc.php
 +%%DATADIR%%/php/include/classes/ctable.inc.php
 +%%DATADIR%%/php/include/classes/ctableinfo.inc.php
 +%%DATADIR%%/php/include/classes/ctag.inc.php
 +%%DATADIR%%/php/include/classes/ctextarea.inc.php
 +%%DATADIR%%/php/include/classes/ctextbox.inc.php
 +%%DATADIR%%/php/include/classes/ctree.inc.php
 +%%DATADIR%%/php/include/classes/ctriggerinfo.mod.php
 +%%DATADIR%%/php/include/classes/curl.inc.php
 +%%DATADIR%%/php/include/classes/cvar.inc.php
 +%%DATADIR%%/php/include/classes/graph.inc.php
 +%%DATADIR%%/php/include/classes/pie.inc.php
 +%%DATADIR%%/php/include/config.inc.php
 +%%DATADIR%%/php/include/copt.lib.php
 +%%DATADIR%%/php/include/db.inc.php
 +%%DATADIR%%/php/include/defines.inc.php
 +%%DATADIR%%/php/include/discovery.inc.php
 +%%DATADIR%%/php/include/events.inc.php
 +%%DATADIR%%/php/include/export.inc.php
 +%%DATADIR%%/php/include/forms.inc.php
 +%%DATADIR%%/php/include/func.inc.php
 +%%DATADIR%%/php/include/graphs.inc.php
 +%%DATADIR%%/php/include/hosts.inc.php
 +%%DATADIR%%/php/include/html.inc.php
 +%%DATADIR%%/php/include/httptest.inc.php
 +%%DATADIR%%/php/include/images.inc.php
 +%%DATADIR%%/php/include/import.inc.php
 +%%DATADIR%%/php/include/items.inc.php
 +%%DATADIR%%/php/include/js.inc.php
 +%%DATADIR%%/php/include/locales.inc.php
 +%%DATADIR%%/php/include/locales/cn_zh.inc.php
 +%%DATADIR%%/php/include/locales/de_de.inc.php
 +%%DATADIR%%/php/include/locales/en_gb.inc.php
 +%%DATADIR%%/php/include/locales/fr_fr.inc.php
 +%%DATADIR%%/php/include/locales/hu_hu.inc.php
 +%%DATADIR%%/php/include/locales/it_it.inc.php
 +%%DATADIR%%/php/include/locales/ja_jp.inc.php
 +%%DATADIR%%/php/include/locales/ko_kr.inc.php
 +%%DATADIR%%/php/include/locales/lv_lv.inc.php
 +%%DATADIR%%/php/include/locales/nl_nl.inc.php
 +%%DATADIR%%/php/include/locales/pl_pl.inc.php
 +%%DATADIR%%/php/include/locales/pt_br.inc.php
 +%%DATADIR%%/php/include/locales/ru_ru.inc.php
 +%%DATADIR%%/php/include/locales/sp_sp.inc.php
 +%%DATADIR%%/php/include/locales/sv_se.inc.php
 +%%DATADIR%%/php/include/maps.inc.php
 +%%DATADIR%%/php/include/media.inc.php
 +%%DATADIR%%/php/include/nodes.inc.php
 +%%DATADIR%%/php/include/page_footer.php
 +%%DATADIR%%/php/include/page_header.php
 +%%DATADIR%%/php/include/perm.inc.php
 +%%DATADIR%%/php/include/profiles.inc.php
 +%%DATADIR%%/php/include/reports.inc.php
 +%%DATADIR%%/php/include/screens.inc.php
 +%%DATADIR%%/php/include/scripts.inc.php
 +%%DATADIR%%/php/include/services.inc.php
 +%%DATADIR%%/php/include/setup.inc.php
 +%%DATADIR%%/php/include/triggers.inc.php
 +%%DATADIR%%/php/include/users.inc.php
 +%%DATADIR%%/php/include/validate.inc.php
 +%%DATADIR%%/php/index.php
 +%%DATADIR%%/php/instal.php
 +%%DATADIR%%/php/items.php
 +%%DATADIR%%/php/js/ajax_req.js
 +%%DATADIR%%/php/js/calendar.js
 +%%DATADIR%%/php/js/common.js
 +%%DATADIR%%/php/js/gmenu.js
 +%%DATADIR%%/php/js/gpc.js
 +%%DATADIR%%/php/js/graphs.js
 +%%DATADIR%%/php/js/menu.js
 +%%DATADIR%%/php/js/menu_scripts.js
 +%%DATADIR%%/php/js/prototype.js
 +%%DATADIR%%/php/js/sbinit.js
 +%%DATADIR%%/php/js/sbox.js
 +%%DATADIR%%/php/js/scrollbar.js
 +%%DATADIR%%/php/js/services.js
 +%%DATADIR%%/php/js/showhint.js
 +%%DATADIR%%/php/js/tree.js
 +%%DATADIR%%/php/js/updater.js
 +%%DATADIR%%/php/latest.php
 +%%DATADIR%%/php/locales.php
 +%%DATADIR%%/php/map.php
  %%DATADIR%%/php/maps.php
 -%%DATADIR%%/php/users.php
 -%%DATADIR%%/php/overview.php
 +%%DATADIR%%/php/media_types.php
  %%DATADIR%%/php/nodes.php
 -%%DATADIR%%/php/tr_events.php
 -%%DATADIR%%/php/authentication.php
 -%%DATADIR%%/php/queue.php
 +%%DATADIR%%/php/overview.php
 +%%DATADIR%%/php/popup.php
 +%%DATADIR%%/php/popup_gitem.php
 +%%DATADIR%%/php/popup_httpstep.php
  %%DATADIR%%/php/popup_link_tr.php
 -%%DATADIR%%/php/httpdetails.php
 -%%DATADIR%%/php/dashboard.php
 -%%DATADIR%%/php/instal.php
 +%%DATADIR%%/php/popup_media.php
  %%DATADIR%%/php/popup_right.php
 -%%DATADIR%%/php/screens.php
 -%%DATADIR%%/php/popup.php
 -%%DATADIR%%/php/media_types.php
 -%%DATADIR%%/php/index.php
 -%%DATADIR%%/php/vtext.php
 -%%DATADIR%%/php/sysmap.php
 -%%DATADIR%%/php/items.php
 -%%DATADIR%%/php/image.php
 -%%DATADIR%%/php/chart2.php
 -%%DATADIR%%/php/actionconf.php
 +%%DATADIR%%/php/popup_trexpr.php
  %%DATADIR%%/php/popup_users.php
 -%%DATADIR%%/php/chart3.php
 -%%DATADIR%%/php/chart4.php
 -%%DATADIR%%/php/httpconf.php
 -%%DATADIR%%/php/chart5.php
 -%%DATADIR%%/php/scripts.php
 -%%DATADIR%%/php/chart6.php
 -%%DATADIR%%/php/chart7.php
 -%%DATADIR%%/php/css.css
 -%%DATADIR%%/php/scripts_exec.php
 +%%DATADIR%%/php/popup_usrgrp.php
 +%%DATADIR%%/php/profile.php
 +%%DATADIR%%/php/queue.php
  %%DATADIR%%/php/report1.php
  %%DATADIR%%/php/report2.php
  %%DATADIR%%/php/report3.php
 -%%DATADIR%%/php/popup_httpstep.php
  %%DATADIR%%/php/report4.php
 -%%DATADIR%%/php/sysmaps.php
  %%DATADIR%%/php/report5.php
 -%%DATADIR%%/php/chart_sla.php
 -%%DATADIR%%/php/hosts.php
 -%%DATADIR%%/php/chart.php
 -%%DATADIR%%/php/events.php
 -%%DATADIR%%/php/popup_usrgrp.php
 -%%DATADIR%%/php/warning.php
 -%%DATADIR%%/php/audit.php
 -%%DATADIR%%/php/services_form.php
 -%%DATADIR%%/php/popup_trexpr.php
 -%%DATADIR%%/php/discovery.php
 -%%DATADIR%%/php/map.php
 -%%DATADIR%%/php/srv_status.php
 -%%DATADIR%%/php/hostprofiles.php
 -%%DATADIR%%/php/acknow.php
 +%%DATADIR%%/php/screenconf.php
  %%DATADIR%%/php/screenedit.php
 -%%DATADIR%%/php/triggers.php
 -%%DATADIR%%/php/httpmon.php
 -%%DATADIR%%/php/latest.php
 -%%DATADIR%%/php/profile.php
 -%%DATADIR%%/php/setup.php
 -%%DATADIR%%/php/exp_imp.php
 -%%DATADIR%%/php/history.php
 -%%DATADIR%%/php/popup_media.php
 -%%DATADIR%%/php/config.php
 -%%DATADIR%%/php/locales.php
 +%%DATADIR%%/php/screens.php
 +%%DATADIR%%/php/scripts.php
 +%%DATADIR%%/php/scripts_exec.php
  %%DATADIR%%/php/services.php
 -%%DATADIR%%/php/charts.php
 -%%DATADIR%%/php/graphs.php
 -%%DATADIR%%/php/screenconf.php
 -%%DATADIR%%/php/popup_gitem.php
 +%%DATADIR%%/php/services_form.php
 +%%DATADIR%%/php/setup.php
 +%%DATADIR%%/php/srv_status.php
 +%%DATADIR%%/php/styles/blocks.css
 +%%DATADIR%%/php/styles/calendar.css
 +%%DATADIR%%/php/styles/css_bb.css
 +%%DATADIR%%/php/styles/css_ob.css
 +%%DATADIR%%/php/styles/default.css
 +%%DATADIR%%/php/styles/div.css
 +%%DATADIR%%/php/styles/form.css
 +%%DATADIR%%/php/styles/link.css
 +%%DATADIR%%/php/styles/p.css
 +%%DATADIR%%/php/styles/popupmenu.css
 +%%DATADIR%%/php/styles/table.css
 +%%DATADIR%%/php/styles/ul.css
 +%%DATADIR%%/php/sysmap.php
 +%%DATADIR%%/php/sysmaps.php
 +%%DATADIR%%/php/tr_comments.php
 +%%DATADIR%%/php/tr_events.php
  %%DATADIR%%/php/tr_status.php
 -%%DATADIR%%/dbpatches/1.6/mysql/patch.sql
 -%%DATADIR%%/dbpatches/1.6/oracle/patch.sql
 -%%DATADIR%%/dbpatches/1.6/postgresql/patch.sql
 -%%DATADIR%%/create/data/images/Hub.png
 -%%DATADIR%%/create/data/images/Hub_small.png
 -%%DATADIR%%/create/data/images/Network.png
 -%%DATADIR%%/create/data/images/Network_small.png
 -%%DATADIR%%/create/data/images/Notebook.png
 -%%DATADIR%%/create/data/images/Notebook_small.png
 -%%DATADIR%%/create/data/images/Phone.png
 -%%DATADIR%%/create/data/images/Phone_small.png
 -%%DATADIR%%/create/data/images/Printer.png
 -%%DATADIR%%/create/data/images/Printer_small.png
 -%%DATADIR%%/create/data/images/Router.png
 -%%DATADIR%%/create/data/images/Router_small.png
 -%%DATADIR%%/create/data/images/Satellite.png
 -%%DATADIR%%/create/data/images/Satellite_small.png
 -%%DATADIR%%/create/data/images/Server.png
 -%%DATADIR%%/create/data/images/Server_small.png
 -%%DATADIR%%/create/data/images/UPS.png
 -%%DATADIR%%/create/data/images/UPS_small.png
 -%%DATADIR%%/create/data/images/Workstation.png
 -%%DATADIR%%/create/data/images/Workstation_small.png
 -%%DATADIR%%/create/data/data.sql
 -%%DATADIR%%/create/data/images_oracle.sql
 -%%DATADIR%%/create/data/images_pgsql.sql
 -%%DATADIR%%/create/data/images_mysql.sql
 -%%DATADIR%%/create/data/images_sqlite3.sql
 -%%DATADIR%%/create/schema/mysql.sql
 -%%DATADIR%%/create/schema/oracle.sql
 -%%DATADIR%%/create/schema/postgresql.sql
 -%%DATADIR%%/create/schema/sqlite.sql
 +%%DATADIR%%/php/triggers.php
 +%%DATADIR%%/php/users.php
 +%%DATADIR%%/php/vtext.php
 +%%DATADIR%%/php/warning.php
  @dirrm %%DATADIR%%/php/styles
  @dirrm %%DATADIR%%/php/js
  @dirrm %%DATADIR%%/php/include/locales
 @@ -366,5 +363,5 @@
  @dirrm %%DATADIR%%/create/data/images
  @dirrm %%DATADIR%%/create/data
  @dirrm %%DATADIR%%/create
 -@dirrm %%DATADIR%%/
 -@dirrmtry %%ETCDIR%%
 +@dirrm %%DATADIR%%
 +@dirrm %%ETCDIR%%
 ===> Done
 
 --------------030801060004030106010301--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904011330.n31DU3iT013757>