<?php
	/***************************************************************************\
	* eGroupWare - FeLaMiMail                                                   *
	* http://www.linux-at-work.de                                               *
	* http://www.phpgw.de                                                       *
	* http://www.egroupware.org                                                 *
	* Written by : Lars Kneschke [lkneschke@linux-at-work.de]                   *
	* -------------------------------------------------                         *
	* 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; version 2 of the License.                       *
	\***************************************************************************/
	/* $Id: class.uisieve.inc.php,v 1.24 2005/11/30 08:29:45 ralfbecker Exp $ */

	#include_once(EGW_SERVER_ROOT. '/felamimail/inc/Sieve.php');
	include_once('Net/Sieve.php');

	class bosieve extends Net_Sieve {
		/**
		* @var object $icServer object containing the information about the imapserver
		*/
		var $icServer;
	
		/**
		* @var object $icServer object containing the information about the imapserver
		*/
		var $scriptName;

		/**
		* @var object $error the last PEAR error object
		*/
		var $error;
	
		function bosieve($_icServer) 
		{
			parent::Net_Sieve();
			
			$this->scriptName = (!empty($GLOBALS['egw_info']['user']['preferences']['felamimail']['sieveScriptName']) ? $GLOBALS['egw_info']['user']['preferences']['felamimail']['sieveScriptName'] : 'felamimail');

			$this->displayCharset	= $GLOBALS['egw']->translation->charset();

			if(is_a($_icServer,'defaultimap') && $_icServer->enableSieve) {
				$sieveHost		= $_icServer->host;
				$sievePort		= $_icServer->sievePort;
				$username		= $_icServer->loginName;
				$password		= $_icServer->password;
				
				$this->icServer = $_icServer;
			} else {
				die('Sieve not activated');
			}

			if(PEAR::isError($this->error = $this->connect($sieveHost , $sievePort) ) ){
				return false;
			}

			if(PEAR::isError($this->error = $this->login($username, $password) ) ){
				return false;
			}
		}
		
		function getRules($_scriptName) {
			return $this->rules;
		}

		function getVacation($_scriptName) {
			return $this->vacation;
		}
		
		function setRules($_scriptName, $_rules) 
		{
			$script         =& CreateObject('felamimail.Script',$_scriptName);

			if($script->retrieveRules($this)) {
				$script->rules = $_rules;
				$script->updateScript($this);
				
				return true;
			} 

			return false;
		}

		function setVacation($_scriptName, $_vacation) 
		{
			$script         =& CreateObject('felamimail.Script',$_scriptName);

			if($script->retrieveRules($this)) {
				$script->vacation = $_vacation;
				$script->updateScript($this);
				
				return true;
			} 

			return false;
		}

		function retrieveRules($_scriptName) {
			$script         =& CreateObject('felamimail.Script',$_scriptName);
			
			if($script->retrieveRules($this)) {
				$this->rules = $script->rules;
				$this->vacation = $script->vacation;
				
				return true;
			} 
			
			return false;
		}
		
		function updateScript($_scriptName, $_rules) {
			$script		=& CreateObject('felamimail.Script',$_scriptName);
			$script->rules	= $_rules;
			$result 	= $script->updateScript($this);

			return $result;
		}
	}
?>