<?xml version="1.0" encoding="UTF-8" ?>
<!-- created at 2025-12-19 10:26:41 -->
<UANodeSet xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd">
	<Extensions>
		<atvise Version="3.13"/>
	</Extensions>
	<NamespaceUris>
		<Uri>http://www.atvise.com/atServer/UA/</Uri>
	</NamespaceUris>
	<Aliases>
		<!-- data types -->
		<Alias Alias="Boolean">i=1</Alias>
		<Alias Alias="SByte">i=2</Alias>
		<Alias Alias="Byte">i=3</Alias>
		<Alias Alias="Int16">i=4</Alias>
		<Alias Alias="UInt16">i=5</Alias>
		<Alias Alias="Int32">i=6</Alias>
		<Alias Alias="UInt32">i=7</Alias>
		<Alias Alias="Int64">i=8</Alias>
		<Alias Alias="UInt64">i=9</Alias>
		<Alias Alias="Float">i=10</Alias>
		<Alias Alias="Double">i=11</Alias>
		<Alias Alias="String">i=12</Alias>
		<Alias Alias="DateTime">i=13</Alias>
		<Alias Alias="ByteString">i=15</Alias>
		<Alias Alias="XmlElement">i=16</Alias>
		<Alias Alias="NodeId">i=17</Alias>
		<Alias Alias="LocalizedText">i=21</Alias>
		<!-- references -->
		<Alias Alias="Organizes">i=35</Alias>
		<Alias Alias="HasEventSource">i=36</Alias>
		<Alias Alias="HasModellingRule">i=37</Alias>
		<Alias Alias="HasTypeDefinition">i=40</Alias>
		<Alias Alias="HasSubtype">i=45</Alias>
		<Alias Alias="HasProperty">i=46</Alias>
		<Alias Alias="HasComponent">i=47</Alias>
		<Alias Alias="HasNotifier">i=48</Alias>
		<Alias Alias="HasCondition">i=9006</Alias>
		<Alias Alias="HasHistoricalConfiguration">i=56</Alias>
		<!-- types -->
		<Alias Alias="BaseDataType">i=24</Alias>
		<Alias Alias="BaseObjectType">i=58</Alias>
		<Alias Alias="FolderType">i=61</Alias>
		<Alias Alias="BaseVariableType">i=62</Alias>
		<Alias Alias="BaseDataVariableType">i=63</Alias>
		<Alias Alias="PropertyType">i=68</Alias>
		<Alias Alias="AlarmConditionStateType">ns=1;i=1001</Alias>
		<!-- modelling rules -->
		<Alias Alias="New">i=78</Alias>
		<Alias Alias="Shared">i=79</Alias>
		<Alias Alias="SharedExclusive">i=336</Alias>
		<!-- other -->
		<Alias Alias="Server">i=2253</Alias>
		<Alias Alias="Objects">i=85</Alias>
	</Aliases>
	<UAObject NodeId="ns=1;s=AGENT" BrowseName="1:AGENT">
		<DisplayName Locale="en">AGENT</DisplayName>
		<Description Locale="en">AGENT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=ObjectTypes.ATVISE.Server.Local</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.Operator" ExportedBrowseName="1:Operator" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS" BrowseName="1:OBJECTS">
		<DisplayName Locale="en">OBJECTS</DisplayName>
		<Description Locale="en">OBJECTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE" BrowseName="1:ATVISE">
		<DisplayName Locale="en">ATVISE</DisplayName>
		<Description Locale="en">ATVISE</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail" BrowseName="1:Mail">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.Operator" BrowseName="1:Operator" DataType="String" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">Operator</DisplayName>
		<Description Locale="en">Operator</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">BaseVariableType</Reference>
		</References>
		<Value>
			<uax:String>{&quot;active&quot;:&quot;true&quot;,&quot;alarm&quot;:{&quot;state&quot;:[1]},&quot;cycleTime&quot;:{&quot;daysOfWeek&quot;:[0,1,2,3,4,5,6]},&quot;end&quot;:86399999,&quot;force&quot;:true,&quot;group&quot;:{&quot;active&quot;:&quot;true&quot;,&quot;address&quot;:&quot;&quot;},&quot;mail&quot;:[&quot;test@bachmann.info&quot;],&quot;name&quot;:&quot;Operator&quot;,&quot;nodes&quot;:{&quot;active&quot;:&quot;false&quot;,&quot;address&quot;:&quot;AGENT.OBJECTS.bool2&quot;},&quot;prio&quot;:{&quot;active&quot;:true,&quot;operator&quot;:&quot;&gt;=&quot;,&quot;value&quot;:600},&quot;start&quot;:0}</uax:String>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=AGENT" BrowseName="1:AGENT">
		<DisplayName Locale="en">AGENT</DisplayName>
		<Description Locale="en">AGENT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=ObjectTypes.ATVISE.Server.Local</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMail" ExportedBrowseName="1:sendMail" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS" BrowseName="1:OBJECTS">
		<DisplayName Locale="en">OBJECTS</DisplayName>
		<Description Locale="en">OBJECTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE" BrowseName="1:ATVISE">
		<DisplayName Locale="en">ATVISE</DisplayName>
		<Description Locale="en">ATVISE</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail" BrowseName="1:Mail">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMail" BrowseName="1:sendMail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">sendMail</DisplayName>
		<Description Locale="en">sendMail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?><script>
<parameter name="alarmState" type="number" trigger="false" relative="false" value=""/>
<code><![CDATA[
var date = new Date();
const timezoneOffset = Math.abs(date.getTimezoneOffset()/60);
var today = date.getDay();
var actTime = ((date.getHours()) * 60 * 60 *1000) + (date.getMinutes() * 60 * 1000) + (date.getSeconds()*1000) + date.getMilliseconds();
var aktUsers = [];
var nodeobj = Ua.findNode("AGENT.OBJECTS.ATVISE.Mail");
var ret = nodeobj.result.browse({
	direction: Ua.Node.BROWSEDIRECTION_FORWARD,
	reference: Ua.Reference.HIERARCHICALREFERENCES,
	subType: true,
	nodeClass: Ua.NodeClass.UNSPECIFIED,
	maxResult: 0
});


for (var i = 0; i < ret.result.length; ++i){
	if(ret.result[i].node.dataType.value == "i=12" && ret.result[i].node.browseName.name != "sendMailLog"){
		var config = JSON.parse(ret.result[i].node.value);
		var alarmstates = config.alarm.state;
		var workDays = config.cycleTime.daysOfWeek;
		var priorityOperator,priorityValue,nodeAddress,groupAddress;
		if(config.prio.active == "true"){priorityOperator=config.prio.operator;priorityValue=config.prio.value}else{priorityOperator="";priorityValue=""};
		(config.group.active == "true")?groupAddress=config.group.address:groupAddress="";
		(config.nodes.active == "true")?nodeAddress=config.nodes.address:nodeAddress="";

		if(config.active == "true" && workDays.includes(today) && alarmstates.includes(alarmState) && actTime >= config.start && actTime < config.end){
			aktUsers.push({name:config.name, mail:config.mail, prioOperator:priorityOperator, prioValue:priorityValue, nodeAddress:nodeAddress, groupAddress:groupAddress});
		}
	}
}
if(aktUsers.length > 0){
	return aktUsers;
}else{
	aktUsers = {error:"Alarm MailManagement: At this time there is no active user responsible for this alarm state"};
	return aktUsers;
}


]]]]><![CDATA[></code></script>]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=AGENT" BrowseName="1:AGENT">
		<DisplayName Locale="en">AGENT</DisplayName>
		<Description Locale="en">AGENT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=ObjectTypes.ATVISE.Server.Local</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMailLog" ExportedBrowseName="1:sendMailLog" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS" BrowseName="1:OBJECTS">
		<DisplayName Locale="en">OBJECTS</DisplayName>
		<Description Locale="en">OBJECTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE" BrowseName="1:ATVISE">
		<DisplayName Locale="en">ATVISE</DisplayName>
		<Description Locale="en">ATVISE</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail" BrowseName="1:Mail">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMailLog" BrowseName="1:sendMailLog" DataType="String" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">sendMailLog</DisplayName>
		<Description Locale="en">sendMailLog</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">BaseVariableType</Reference>
		</References>
		<Value>
			<uax:String>{&quot;active&quot;: false, &quot;count&quot;: 0, &quot;log&quot;: {}}</uax:String>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=AGENT" BrowseName="1:AGENT">
		<DisplayName Locale="en">AGENT</DisplayName>
		<Description Locale="en">AGENT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=ObjectTypes.ATVISE.Server.Local</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=AGENT.OBJECTS.ATVISE" ExportedBrowseName="1:ATVISE" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS" BrowseName="1:OBJECTS">
		<DisplayName Locale="en">OBJECTS</DisplayName>
		<Description Locale="en">OBJECTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE" BrowseName="1:ATVISE">
		<DisplayName Locale="en">ATVISE</DisplayName>
		<Description Locale="en">ATVISE</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail" BrowseName="1:Mail">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMailLog" BrowseName="1:sendMailLog" DataType="String" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">sendMailLog</DisplayName>
		<Description Locale="en">sendMailLog</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">BaseVariableType</Reference>
		</References>
		<Value>
			<uax:String>{&quot;active&quot;: false, &quot;count&quot;: 0, &quot;log&quot;: {}}</uax:String>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMail" BrowseName="1:sendMail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">sendMail</DisplayName>
		<Description Locale="en">sendMail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?><script>
<parameter name="alarmState" type="number" trigger="false" relative="false" value=""/>
<code><![CDATA[
var date = new Date();
const timezoneOffset = Math.abs(date.getTimezoneOffset()/60);
var today = date.getDay();
var actTime = ((date.getHours()) * 60 * 60 *1000) + (date.getMinutes() * 60 * 1000) + (date.getSeconds()*1000) + date.getMilliseconds();
var aktUsers = [];
var nodeobj = Ua.findNode("AGENT.OBJECTS.ATVISE.Mail");
var ret = nodeobj.result.browse({
	direction: Ua.Node.BROWSEDIRECTION_FORWARD,
	reference: Ua.Reference.HIERARCHICALREFERENCES,
	subType: true,
	nodeClass: Ua.NodeClass.UNSPECIFIED,
	maxResult: 0
});


for (var i = 0; i < ret.result.length; ++i){
	if(ret.result[i].node.dataType.value == "i=12" && ret.result[i].node.browseName.name != "sendMailLog"){
		var config = JSON.parse(ret.result[i].node.value);
		var alarmstates = config.alarm.state;
		var workDays = config.cycleTime.daysOfWeek;
		var priorityOperator,priorityValue,nodeAddress,groupAddress;
		if(config.prio.active == "true"){priorityOperator=config.prio.operator;priorityValue=config.prio.value}else{priorityOperator="";priorityValue=""};
		(config.group.active == "true")?groupAddress=config.group.address:groupAddress="";
		(config.nodes.active == "true")?nodeAddress=config.nodes.address:nodeAddress="";

		if(config.active == "true" && workDays.includes(today) && alarmstates.includes(alarmState) && actTime >= config.start && actTime < config.end){
			aktUsers.push({name:config.name, mail:config.mail, prioOperator:priorityOperator, prioValue:priorityValue, nodeAddress:nodeAddress, groupAddress:groupAddress});
		}
	}
}
if(aktUsers.length > 0){
	return aktUsers;
}else{
	aktUsers = {error:"Alarm MailManagement: At this time there is no active user responsible for this alarm state"};
	return aktUsers;
}


]]]]><![CDATA[></code></script>]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.Operator" BrowseName="1:Operator" DataType="String" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">Operator</DisplayName>
		<Description Locale="en">Operator</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">BaseVariableType</Reference>
		</References>
		<Value>
			<uax:String>{&quot;active&quot;:&quot;true&quot;,&quot;alarm&quot;:{&quot;state&quot;:[1]},&quot;cycleTime&quot;:{&quot;daysOfWeek&quot;:[0,1,2,3,4,5,6]},&quot;end&quot;:86399999,&quot;force&quot;:true,&quot;group&quot;:{&quot;active&quot;:&quot;true&quot;,&quot;address&quot;:&quot;&quot;},&quot;mail&quot;:[&quot;test@bachmann.info&quot;],&quot;name&quot;:&quot;Operator&quot;,&quot;nodes&quot;:{&quot;active&quot;:&quot;false&quot;,&quot;address&quot;:&quot;AGENT.OBJECTS.bool2&quot;},&quot;prio&quot;:{&quot;active&quot;:true,&quot;operator&quot;:&quot;&gt;=&quot;,&quot;value&quot;:600},&quot;start&quot;:0}</uax:String>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=AGENT" BrowseName="1:AGENT">
		<DisplayName Locale="en">AGENT</DisplayName>
		<Description Locale="en">AGENT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=ObjectTypes.ATVISE.Server.Local</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail" ExportedBrowseName="1:Mail" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS" BrowseName="1:OBJECTS">
		<DisplayName Locale="en">OBJECTS</DisplayName>
		<Description Locale="en">OBJECTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE" BrowseName="1:ATVISE">
		<DisplayName Locale="en">ATVISE</DisplayName>
		<Description Locale="en">ATVISE</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail" BrowseName="1:Mail">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMailLog" BrowseName="1:sendMailLog" DataType="String" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">sendMailLog</DisplayName>
		<Description Locale="en">sendMailLog</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">BaseVariableType</Reference>
		</References>
		<Value>
			<uax:String>{&quot;active&quot;: false, &quot;count&quot;: 0, &quot;log&quot;: {}}</uax:String>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.sendMail" BrowseName="1:sendMail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">sendMail</DisplayName>
		<Description Locale="en">sendMail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?><script>
<parameter name="alarmState" type="number" trigger="false" relative="false" value=""/>
<code><![CDATA[
var date = new Date();
const timezoneOffset = Math.abs(date.getTimezoneOffset()/60);
var today = date.getDay();
var actTime = ((date.getHours()) * 60 * 60 *1000) + (date.getMinutes() * 60 * 1000) + (date.getSeconds()*1000) + date.getMilliseconds();
var aktUsers = [];
var nodeobj = Ua.findNode("AGENT.OBJECTS.ATVISE.Mail");
var ret = nodeobj.result.browse({
	direction: Ua.Node.BROWSEDIRECTION_FORWARD,
	reference: Ua.Reference.HIERARCHICALREFERENCES,
	subType: true,
	nodeClass: Ua.NodeClass.UNSPECIFIED,
	maxResult: 0
});


for (var i = 0; i < ret.result.length; ++i){
	if(ret.result[i].node.dataType.value == "i=12" && ret.result[i].node.browseName.name != "sendMailLog"){
		var config = JSON.parse(ret.result[i].node.value);
		var alarmstates = config.alarm.state;
		var workDays = config.cycleTime.daysOfWeek;
		var priorityOperator,priorityValue,nodeAddress,groupAddress;
		if(config.prio.active == "true"){priorityOperator=config.prio.operator;priorityValue=config.prio.value}else{priorityOperator="";priorityValue=""};
		(config.group.active == "true")?groupAddress=config.group.address:groupAddress="";
		(config.nodes.active == "true")?nodeAddress=config.nodes.address:nodeAddress="";

		if(config.active == "true" && workDays.includes(today) && alarmstates.includes(alarmState) && actTime >= config.start && actTime < config.end){
			aktUsers.push({name:config.name, mail:config.mail, prioOperator:priorityOperator, prioValue:priorityValue, nodeAddress:nodeAddress, groupAddress:groupAddress});
		}
	}
}
if(aktUsers.length > 0){
	return aktUsers;
}else{
	aktUsers = {error:"Alarm MailManagement: At this time there is no active user responsible for this alarm state"};
	return aktUsers;
}


]]]]><![CDATA[></code></script>]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=AGENT.OBJECTS.ATVISE.Mail.Operator" BrowseName="1:Operator" DataType="String" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">Operator</DisplayName>
		<Description Locale="en">Operator</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.OBJECTS.ATVISE.Mail</Reference>
			<Reference ReferenceType="HasTypeDefinition">BaseVariableType</Reference>
		</References>
		<Value>
			<uax:String>{&quot;active&quot;:&quot;true&quot;,&quot;alarm&quot;:{&quot;state&quot;:[1]},&quot;cycleTime&quot;:{&quot;daysOfWeek&quot;:[0,1,2,3,4,5,6]},&quot;end&quot;:86399999,&quot;force&quot;:true,&quot;group&quot;:{&quot;active&quot;:&quot;true&quot;,&quot;address&quot;:&quot;&quot;},&quot;mail&quot;:[&quot;test@bachmann.info&quot;],&quot;name&quot;:&quot;Operator&quot;,&quot;nodes&quot;:{&quot;active&quot;:&quot;false&quot;,&quot;address&quot;:&quot;AGENT.OBJECTS.bool2&quot;},&quot;prio&quot;:{&quot;active&quot;:true,&quot;operator&quot;:&quot;&gt;=&quot;,&quot;value&quot;:600},&quot;start&quot;:0}</uax:String>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement" ExportedBrowseName="1:MailManagement" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS" BrowseName="1:OBJECTDISPLAYS">
		<DisplayName Locale="en">OBJECTDISPLAYS</DisplayName>
		<Description Locale="en">OBJECTDISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced" BrowseName="1:Advanced">
		<DisplayName Locale="en">Advanced</DisplayName>
		<Description Locale="en">Advanced</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailManager" BrowseName="1:MailManager" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailManager</DisplayName>
		<Description Locale="en">MailManager</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg height="680" version="1.2" width="1280" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <desc>Report overview display.</desc>
 <title>Report Management</title>
 <metadata>
  <!-- common -->
  <!-- table -->
  <!-- font -->
  <!-- appeareance -->
  <!-- options -->
  <!-- menu -->
  <!-- security -->
  <atv:parameter behavior="hidden" defaultvalue="true" desc="device scaling" name="deviceScaling" valuetype="bool"/>
  <atv:parameter behavior="hidden" defaultvalue="" desc="table ID of parent" name="parentID" valuetype="string"/>
  <atv:parameter behavior="mandatory" defaultvalue="report_table" desc="table ID" group="Table" name="tableID" substitute="$TABLEID$" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="30" desc="table header height" group="Table" name="header_height" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="20" desc="table row height" group="Table" name="row_height" valuetype="number"/>
  <atv:parameter behavior="optional" config="Arial;Courier;Tahoma;Verdana" defaultvalue="Arial" desc="font family" group="Font" name="font_family" valuetype="enum"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFontColor" desc="font color" group="Font" name="globalFontColor" substitute="$FONTCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table header font size" group="Font" name="header_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table row font size" group="Font" name="row_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table detail font size" group="Font" name="detail_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table footer font size" group="Font" name="footer_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvBorderColor" desc="border color" group="Appearance" name="globalBorderColor" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFillColor" desc="fill color" group="Appearance" name="globalFillColor" substitute="$FILLCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvSymbolColor" desc="symbol color" group="Appearance" name="globalSymbolColor" substitute="$SYMBOLCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvObjectDisplays.Tables.ColorConfig" desc="global color config" group="Appearance" name="globalColorConfig" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="atviseTheme" desc="custom theme" group="Appearance" name="theme" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailScheduler" desc="Mail configurator" group="Options" name="edit_display" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="paging" group="Options" name="paging" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="filter bar enabled" group="Options" name="filterBar" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="filter regular expressions" group="Options" name="filterRegExp" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="filter use placeholder" group="Options" name="filterStar" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="filter case sensitive" group="Options" name="filterCaseSensitive" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="1" desc="filter min. input length" group="Options" name="filterMinInputLength" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="stick parent and child together" group="Options" name="parentChildStickTogether" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="cell linebreak" group="Options" name="linebreak" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="columns reorderable" group="Options" name="columnReorder" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="multiselect on cell click" group="Options" name="multicellselect" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="show menu" group="Menu options" name="showMenu" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="T{Export CSV}" desc="custom menu title" group="Menu options" name="showMenuCustomTitle" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="Show/Hide" desc="picker menu title" group="Menu options" name="showPickerMenuTitle" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="show picker menu" group="Menu options" name="showPickerMenu" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="300" desc="menu width" group="Menu options" name="menuWidth" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="300" desc="menu height" group="Menu options" name="menuHeight" valuetype="number"/>
  <atv:parameter behavior="optional" config="SYSTEM.SECURITY.RIGHTS" defaultvalue="" desc="right for CSV export" group="Security" name="rightExport" valuetype="address"/>
  <atv:gridconfig enabled="true" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="true" height="5" width="5"/>
 </metadata>
 <rect atv:refpx="1002.02" atv:refpy="48.975" fill="$FILLCOLOR$" height="65.5" id="filters_bg" rx="0" ry="0" stroke="#000000" stroke-width="1" width="1280" x="0" y="0"/>
 <text atv:refpx="177.995" atv:refpy="33" fill="$FONTCOLOR$" font-family="Arial" font-size="22" id="title" text-anchor="start" x="55" y="40.5">T{E-Mail Manager}</text>
 <svg atv:refpx="27.799" atv:refpy="19.999" height="60" id="logo" transform="matrix(0.6,0,0,0.6,0,0)" width="60" x="16.667" xlink:href="SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60.Mail" y="23.333">
  <atv:argument name="symbolColor" prefix="globalSymbolColor" value=""/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <text atv:refpx="1535" atv:refpy="680.5" fill="#e5e5e5" font-family="Arial" font-size="12" id="id_13" x="1535" y="685"/>
 <svg atv:refpx="320" atv:refpy="-15" height="20" id="iconMessage" width="80" x="390" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.slickgrid.table_notification" y="-25">
  <atv:argument name="tableID" prefix="tableID"/>
  <atv:argument name="messageBoard" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.message_board"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:refpx="515" atv:refpy="-15" height="20" id="id_7" width="80" x="475" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.slickgrid.table_keyboard" y="-25">
  <atv:argument name="tableID" prefix="tableID"/>
  <atv:argument name="keyboard_display" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.keyboard.keyboard"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:refpx="640" atv:refpy="667.5" height="25" id="table_footer" transform="matrix(2,0,0,1,0,0)" width="640" x="0" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.slickgrid.table_footer" y="655">
  <atv:argument name="tableID" prefix="tableID"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <foreignObject height="589" id="table_panel" width="1280" x="0" y="66">
  <div style="width:100%;height:100%" xmlns="http://www.w3.org/1999/xhtml">
   <div id="$TABLEID$" style="width:100%; height:100%;"/>
  </div>
 </foreignObject>
 <svg atv:refpx="368.25" atv:refpy="-14.5" height="20" id="iconSelected" transform="matrix(0.55,0,0,0.55,0,0)" width="20" x="654.546" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.check" y="-36.364">
  <atv:argument name="symbolColor" value="#575757"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:refpx="357.125" atv:refpy="-13.5" height="20" id="iconBurger" transform="matrix(0.65,0,0,0.65,0,0)" width="20" x="576.923" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.table.burger" y="-32.307">
  <atv:argument name="symbolColor" value="#575757"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:dynamic="true" atv:refpx="1226.33" atv:refpy="40.333" height="30" id="button_refresh" transform="matrix(0.5,0,0,1.3333,0,0)" width="80" x="2460" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="9.75">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="3"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="84.5"/>
  <atv:overwrite id="id_0" transform="matrix(0.8889,0,0,1,0,0)" width="89.5"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="displayAcNotification" value="false"/>
  <atv:argument name="visibilityLabel" value="hidden"/>
  <atv:argument name="visibilitySymbol" value="inherit"/>
  <atv:argument name="symbol" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.file_reload"/>
  <atv:argument name="tooltip" value="T{Refresh}"/>
  <atv:overwrite height="38" id="id_6" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite id="button_label_2" transform="matrix(2,0,0,0.75,0,0)" x="20" y="31.5"/>
  <atv:overwrite id="button_label_1" transform="matrix(2,0,0,0.75,0,0)" x="20" y="16.5"/>
  <atv:overwrite id="button_label" transform="matrix(2,0,0,0.75,0,0)" x="20" y="24.5"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="34.625"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="13.292"/>
  <atv:overwrite id="button_symbol" transform="matrix(2,0,0,0.75,0,0)" x="10" y="10"/>
  <atv:overwrite height="36" id="button_stroke" transform="matrix(2,0,0,0.75,0,0)" width="36"/>
  <atv:overwrite height="38" id="button_bg" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite height="40" id="outer_frame" transform="matrix(2,0,0,0.75,0,0)" width="40"/>
 </svg>
 <foreignObject height="20" id="id_notification" width="80" x="947" y="25">
  <div style="width:100%;height:100%;float:right;" xmlns="http://www.w3.org/1999/xhtml">
   <div id="notification_area" style="z-index:10000;background-color:#fff;width:80px;height:20px; float: right;" xmlns="http://www.w3.org/1999/xhtml"/>
  </div>
 </foreignObject>
 <script atv:desc="" atv:href="SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailManager" atv:name="Mail Manager" atv:type="text/ecmascript"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <svg atv:dynamic="true" atv:refpx="1073.866" atv:refpy="40.333" height="30" id="button_new" transform="matrix(0.5,0,0,1.3333,0,0)" width="80" x="2278" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="9.75">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="84.5"/>
  <atv:overwrite id="id_0" transform="matrix(0.8889,0,0,1,0,0)" width="89.5"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="displayAcNotification" value="false"/>
  <atv:argument name="visibilityLabel" value="hidden"/>
  <atv:argument name="visibilitySymbol" value="inherit"/>
  <atv:argument name="symbol" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.plus2"/>
  <atv:argument name="tooltip" value="T{Add}"/>
  <atv:overwrite height="37.999" id="id_6" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite id="button_label_2" transform="matrix(2,0,0,0.75,0,0)" x="20" y="31.499"/>
  <atv:overwrite id="button_label_1" transform="matrix(2,0,0,0.75,0,0)" x="20" y="16.499"/>
  <atv:overwrite id="button_label" transform="matrix(2,0,0,0.75,0,0)" x="20" y="24.499"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="34.624"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="13.291"/>
  <atv:overwrite id="button_symbol" transform="matrix(2,0,0,0.75,0,0)" x="10" y="9.999"/>
  <atv:overwrite height="35.999" id="button_stroke" transform="matrix(2,0,0,0.75,0,0)" width="36"/>
  <atv:overwrite height="37.999" id="button_bg" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite height="39.999" id="outer_frame" transform="matrix(2,0,0,0.75,0,0)" width="40"/>
 </svg>
 <svg atv:dynamic="true" atv:refpx="1118.867" atv:refpy="40.333" height="30" id="button_delete" transform="matrix(0.5,0,0,1.3333,0,0)" width="80" x="2368" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="9.75">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="2"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="84.5"/>
  <atv:overwrite id="id_0" transform="matrix(0.8889,0,0,1,0,0)" width="89.5"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="displayAcNotification" value="false"/>
  <atv:argument name="visibilityLabel" value="hidden"/>
  <atv:argument name="visibilitySymbol" value="inherit"/>
  <atv:argument name="symbol" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.minus2"/>
  <atv:argument name="tooltip" value="T{Delete}"/>
  <atv:overwrite height="37.999" id="id_6" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite id="button_label_2" transform="matrix(2,0,0,0.75,0,0)" x="20" y="31.499"/>
  <atv:overwrite id="button_label_1" transform="matrix(2,0,0,0.75,0,0)" x="20" y="16.499"/>
  <atv:overwrite id="button_label" transform="matrix(2,0,0,0.75,0,0)" x="20" y="24.499"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="34.624"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="13.291"/>
  <atv:overwrite id="button_symbol" transform="matrix(2,0,0,0.75,0,0)" x="10" y="9.999"/>
  <atv:overwrite height="35.999" id="button_stroke" transform="matrix(2,0,0,0.75,0,0)" width="36"/>
  <atv:overwrite height="37.999" id="button_bg" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite height="39.999" id="outer_frame" transform="matrix(2,0,0,0.75,0,0)" width="40"/>
 </svg>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailScheduler" BrowseName="1:MailScheduler" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailScheduler</DisplayName>
		<Description Locale="en">MailScheduler</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg height="700" version="1.2" width="700" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <metadata>
  <atv:parameter behavior="optional" defaultvalue="T{Edit sms scheduler}" desc="headline" name="headline" substitute="$HEADLINE$" valuetype="trstring"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.folder_report" desc="symbol" name="symbol" substitute="$SYMBOL$" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.keyboard.keyboard" desc="keyboard display" name="keyboard" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.pw_editor" desc="password display" name="passworddisplay" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFontColor" desc="font color" name="fontColor" substitute="$FONTCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFillColor" desc="fill color" name="fillColor" substitute="$FILLCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvSymbolColor" desc="symbol color" name="symbolColor" substitute="$SYMBOLCOLOR$" valuetype="global"/>
  <atv:gridconfig enabled="true" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="false" height="10" width="10"/>
 </metadata>
 <rect atv:refpx="350" atv:refpy="350" fill="$FILLCOLOR$" height="700" id="background" stroke="none" stroke-width="0" width="700" x="0" y="0"/>
 <rect atv:refpx="350.24" atv:refpy="320.019" fill="#ffffff" height="558.86" id="schedule_background" rx="14.542" ry="18.029" stroke="none" stroke-width="0" width="618.076" x="41.202" y="40.589"/>
 <rect atv:refpx="349.408" atv:refpy="306.289" fill="#f5f5f5" height="290.165" id="id_34" rx="14.585" ry="20.909" stroke="none" stroke-width="0" width="579.892" x="59.462" y="161.207"/>
 <text atv:refpx="107.504" atv:refpy="492.706" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="weekdays_label" text-anchor="end" x="158.104" y="498.706">T{Weekday(s)}</text>
 <svg atv:refpx="603.922" atv:refpy="259.165" height="30" id="weekdays_0" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="3140.917" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="194.999" atv:refpy="277.165" height="30" id="weekdays_1" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="45"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="263.796" atv:refpy="277.165" height="30" id="weekdays_2" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="1326.912" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="46"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="331.821" atv:refpy="277.165" height="30" id="weekdays_3" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="1689.713" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="47"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="399.846" atv:refpy="463.165" height="30" id="weekdays_4" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="48"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="467.871" atv:refpy="277.165" height="30" id="weekdays_5" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2415.315" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="49"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="535.897" atv:refpy="259.165" height="30" id="weekdays_6" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2778.116" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="50"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="592.324" atv:refpy="518.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_15" text-anchor="middle" x="603.922" y="523.165">T{Sun.}</text>
 <text atv:refpx="184.134" atv:refpy="518.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_16" text-anchor="middle" x="196.271" y="523.165">T{Mon.}</text>
 <text atv:refpx="263.88" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_17" text-anchor="middle" x="263.88" y="523.165">T{Tue.}</text>
 <text atv:refpx="332.488" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_18" text-anchor="middle" x="332.488" y="523.165">T{Wed.}</text>
 <text atv:refpx="399.096" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_19" text-anchor="middle" x="399.096" y="523.165">T{Thu.}</text>
 <text atv:refpx="468.205" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_21" text-anchor="middle" x="468.205" y="523.165">T{Fri.}</text>
 <text atv:refpx="535.813" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_22" text-anchor="middle" x="535.813" y="523.165">T{Sat.}</text>
 <svg atv:refpx="282.74" atv:refpy="83.962" height="30" id="configuration_input" transform="matrix(1.2842,0,0,1,0,0)" width="160" x="140.171" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="60.962">
  <atv:argument name="validation" value="String"/>
  <atv:argument name="allowDirectInput" value="Yes"/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="174.5"/>
  <atv:overwrite id="input_label" transform="matrix(0.7787,0,0,1,0,0)" x="197.527"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.7787,0,0,1,0,0)" width="197.472"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.7787,0,0,1,0,0)" width="201.472"/>
  <atv:overwrite id="input_bg" transform="matrix(0.7787,0,0,1,0,0)" width="197.472"/>
  <atv:overwrite id="id_1" transform="matrix(0.7787,0,0,1,0,0)" width="203.472"/>
  <atv:overwrite id="id_0" transform="matrix(0.7787,0,0,1,0,0)" width="205.472"/>
 </svg>
 <svg atv:refpx="401.375" atv:refpy="175.575" height="30" id="prio_input" transform="matrix(0.2312,0,0,1,0,0)" width="160" x="1746.902" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="183.575">
  <atv:argument name="allowDirectInput" value="Yes"/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="174.5"/>
  <atv:overwrite id="input_label" transform="matrix(4.3253,0,0,1,0,0)" x="29.047"/>
  <atv:overwrite id="blinking_frame" transform="matrix(4.3253,0,0,1,0,0)" width="28.992"/>
  <atv:overwrite id="focus_frame" transform="matrix(4.3253,0,0,1,0,0)" width="32.992"/>
  <atv:overwrite id="input_bg" transform="matrix(4.3253,0,0,1,0,0)" width="28.992"/>
  <atv:overwrite id="id_1" transform="matrix(4.3253,0,0,1,0,0)" width="34.992"/>
  <atv:overwrite id="id_0" transform="matrix(4.3253,0,0,1,0,0)" width="36.992"/>
 </svg>
 <text atv:refpx="266.617" atv:refpy="198.575" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_3" text-anchor="start" x="232" y="204.575">T{Priority}</text>
 <text atv:refpx="130.624" atv:refpy="559.483" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_4" text-anchor="end" x="158.104" y="565.483">T{From}</text>
 <text atv:refpx="406.567" atv:refpy="559.483" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_5" text-anchor="end" x="423.718" y="565.483">T{To}</text>
 <svg atv:dynamic="true" atv:refpx="295.345" atv:refpy="618.889" height="30" id="save_button" transform="matrix(1.1875,0,0,1,0,0)" width="80" x="206.713" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="642.889">
  <atv:argument name="label" value="T{Save}"/>
  <atv:argument name="tabIndex" value="60"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="fontSize" value="14"/>
  <atv:overwrite id="id_6" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="button_label_2" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label_1" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.8421,0,0,1,0,0)" x="37.5"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.8421,0,0,1,0,0)" width="91"/>
  <atv:overwrite id="button_bg" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="outer_frame" transform="matrix(0.8421,0,0,1,0,0)" width="95"/>
 </svg>
 <svg atv:dynamic="true" atv:refpx="410.345" atv:refpy="618.889" height="30" id="cancel_button" transform="matrix(1.1875,0,0,1,0,0)" width="80" x="303.555" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="642.889">
  <atv:argument name="label" value="T{Cancel}"/>
  <atv:argument name="tabIndex" value="61"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="fontSize" value="14"/>
  <atv:overwrite id="id_6" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="button_label_2" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label_1" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.8421,0,0,1,0,0)" x="37.5"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.8421,0,0,1,0,0)" width="91"/>
  <atv:overwrite id="button_bg" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="outer_frame" transform="matrix(0.8421,0,0,1,0,0)" width="95"/>
 </svg>
 <text atv:refpx="372" atv:refpy="624.387" fill="#ff0004" font-family="Arial" font-size="14" id="message" text-anchor="middle" x="350" y="628.887">&lt;errormessage></text>
 <svg atv:refpx="398.83" atv:refpy="132.01" height="30" id="email_input" transform="matrix(2.7365,0,0,1,0,0)" width="160" x="65.76" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="110.01">
  <atv:argument name="allowDirectInput" value="Yes"/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="174.5"/>
  <atv:argument name="validation" value="String"/>
  <atv:overwrite id="input_label" transform="matrix(0.3654,0,0,1,0,0)" x="429.895"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.3654,0,0,1,0,0)" width="429.84"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.3654,0,0,1,0,0)" width="433.84"/>
  <atv:overwrite id="input_bg" transform="matrix(0.3654,0,0,1,0,0)" width="429.84"/>
  <atv:overwrite id="id_1" transform="matrix(0.3654,0,0,1,0,0)" width="435.84"/>
  <atv:overwrite id="id_0" transform="matrix(0.3654,0,0,1,0,0)" width="437.84"/>
 </svg>
 <text atv:refpx="523.359" atv:refpy="76.325" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_9" text-anchor="start" x="491.79" y="82.325">T{Active}</text>
 <svg atv:refpx="604.539" atv:refpy="108.325" height="30" id="active" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2354.87" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="61.325">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="127.604" atv:refpy="75.962" fill="#575757" font-family="Arial" font-size="16" id="id_7" text-anchor="end" x="158.104" y="81.962">T{Name}</text>
 <text atv:refpx="65.301" atv:refpy="331.457" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_10" text-anchor="end" x="158.19" y="337.457">T{Alarm State}</text>
 <text atv:refpx="126.104" atv:refpy="125.01" fill="#575757" font-family="Arial" font-size="16" id="id_11" text-anchor="end" x="158.104" y="131.01">T{E-Mail}</text>
 <svg atv:refpx="399.846" atv:refpy="346" height="30" id="state_3" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="359">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="399.846" atv:refpy="307" height="30" id="state_2" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="320">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="195" atv:refpy="346" height="30" id="state_1" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="359">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="195" atv:refpy="307" height="30" id="state_0" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="320">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="279.5" atv:refpy="335.184" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_24" text-anchor="start" x="232" y="338.684">T{Acknowledged}</text>
 <text atv:refpx="297" atv:refpy="374.529" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_25" text-anchor="start" x="232" y="378.029">T{On Unacknowledged}</text>
 <text atv:refpx="524.587" atv:refpy="332.551" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_26" text-anchor="start" x="445.061" y="338.551">T{On Acknowledged}</text>
 <text atv:refpx="535.783" atv:refpy="371.896" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_27" text-anchor="start" x="445.061" y="377.896">T{Off Unacknowledged}</text>
 <svg atv:refpx="399.846" atv:refpy="385.74" height="30" id="state_5" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="398.74">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="548.866" atv:refpy="411.24" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_29" text-anchor="start" x="445.061" y="417.24">T{On Off Unacknowledged}</text>
 <svg atv:refpx="358.474" atv:refpy="164.575" height="30" id="prio_oper" transform="matrix(0.3646,0,0,1,0,0)" width="160" x="933.449" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.combobox" y="183.575">
  <atv:argument name="text1" value="T{==}"/>
  <atv:argument name="text1value" value="=="/>
  <atv:argument name="text2" value="T{>=}"/>
  <atv:argument name="text2value" value=">="/>
  <atv:argument value="T{&lt;=}" name="text3"/>
  <atv:argument value="&lt;=" name="text3value"/>
  <atv:argument value="T{&lt;>}" name="text4"/>
  <atv:argument name="text4value" value="!="/>
  <atv:overwrite id="focus_frame" transform="matrix(2.7427,0,0,1,0,0)" width="54.336"/>
  <atv:overwrite id="button_stroke" transform="matrix(2.7427,0,0,1,0,0)" x="33.336"/>
  <atv:overwrite id="id_7" transform="matrix(2.7427,0,0,1,0,0)" x="33.336"/>
  <atv:overwrite id="button_bg" transform="matrix(2.7427,0,0,1,0,0)" x="33.336"/>
  <atv:overwrite id="combobox_label" transform="matrix(2.7427,0,0,1,0,0)" x="23.836"/>
  <atv:overwrite id="blinking_frame" transform="matrix(2.7427,0,0,1,0,0)" width="26.336"/>
  <atv:overwrite id="combobox_bg" transform="matrix(2.7427,0,0,1,0,0)" width="26.336"/>
  <atv:overwrite id="id_1" transform="matrix(2.7427,0,0,1,0,0)" width="56.336"/>
  <atv:overwrite id="id_0" transform="matrix(2.7427,0,0,1,0,0)" width="58.336"/>
 </svg>
 <svg atv:refpx="479.584" atv:refpy="260.911" height="30" id="address_picker" transform="matrix(1.7401,0,0,1,0,0)" width="160" x="195.612" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.picker_address" y="261.911">
  <atv:overwrite id="addresspicker_clickarea" transform="matrix(0.5747,0,0,1,0,0)" x="250.416"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.5747,0,0,1,0,0)" width="274.416"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.5747,0,0,1,0,0)" x="253.166"/>
  <atv:overwrite id="button_bg" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="input_label" transform="matrix(0.5747,0,0,1,0,0)" x="244.416"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="addresspicker_bg" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="id_0" transform="matrix(0.5747,0,0,1,0,0)" width="276.416"/>
  <atv:overwrite id="addresspicker_stroke" transform="matrix(0.5747,0,0,1,0,0)" width="278.416"/>
 </svg>
 <text atv:refpx="271" atv:refpy="276.911" fill="#575757" font-family="Arial" font-size="16" id="id_32" text-anchor="start" x="232" y="282.911">T{Address}</text>
 <script atv:desc="" atv:href="SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailScheduler" atv:name="Mail Scheduler" atv:type="text/ecmascript"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <svg atv:refpx="195" atv:refpy="182.575" height="30" id="prio_act" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="183.575">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="194.47" atv:refpy="260.911" height="30" id="nodes_act" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="261.911">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="342.951" atv:refpy="245.743" height="30" id="group_act" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="959.733" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="222.743">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="263.568" atv:refpy="236.419" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_12" text-anchor="start" x="232" y="242.419">T{Group}</text>
 <svg atv:refpx="479.584" atv:refpy="221.743" height="30" id="group_picker" transform="matrix(1.7401,0,0,1,0,0)" width="160" x="195.613" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.picker_address" y="222.743">
  <atv:argument name="base" value="AGENT.ALARMING.Groups"/>
  <atv:argument name="onDemand" value="No"/>
  <atv:argument name="showBaseVariables" value="No"/>
  <atv:overwrite id="addresspicker_clickarea" transform="matrix(0.5747,0,0,1,0,0)" x="250.416"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.5747,0,0,1,0,0)" width="274.416"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.5747,0,0,1,0,0)" x="253.166"/>
  <atv:overwrite id="button_bg" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="input_label" transform="matrix(0.5747,0,0,1,0,0)" x="244.416"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="addresspicker_bg" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="id_0" transform="matrix(0.5747,0,0,1,0,0)" width="276.416"/>
  <atv:overwrite id="addresspicker_stroke" transform="matrix(0.5747,0,0,1,0,0)" width="278.416"/>
 </svg>
 <svg atv:refpx="220.666" atv:refpy="559.483" height="30" id="start_input" transform="matrix(0.5065,0,0,1,0,0)" width="160" x="355.635" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="544.483">
  <atv:argument name="validation" value="String"/>
  <atv:overwrite id="input_label" transform="matrix(1.9742,0,0,1,0,0)" x="73.101"/>
  <atv:overwrite id="blinking_frame" transform="matrix(1.9742,0,0,1,0,0)" width="73.046"/>
  <atv:overwrite id="focus_frame" transform="matrix(1.9742,0,0,1,0,0)" width="77.046"/>
  <atv:overwrite id="input_bg" transform="matrix(1.9742,0,0,1,0,0)" width="73.046"/>
  <atv:overwrite id="id_1" transform="matrix(1.9742,0,0,1,0,0)" width="79.046"/>
  <atv:overwrite id="id_0" transform="matrix(1.9742,0,0,1,0,0)" width="81.046"/>
 </svg>
 <text atv:refpx="287.528" atv:refpy="559.983" fill="$FONTCOLOR$" font-family="Arial" font-size="12" font-style="italic" id="id_13" x="266.559" y="564.483">HH:mm</text>
 <svg atv:refpx="497.598" atv:refpy="559.483" height="30" id="end_input" transform="matrix(0.5065,0,0,1,0,0)" width="160" x="894.52" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="544.483">
  <atv:argument name="validation" value="String"/>
  <atv:overwrite id="input_label" transform="matrix(1.9743,0,0,1,0,0)" x="73.095"/>
  <atv:overwrite id="blinking_frame" transform="matrix(1.9743,0,0,1,0,0)" width="73.04"/>
  <atv:overwrite id="focus_frame" transform="matrix(1.9743,0,0,1,0,0)" width="77.04"/>
  <atv:overwrite id="input_bg" transform="matrix(1.9743,0,0,1,0,0)" width="73.04"/>
  <atv:overwrite id="id_1" transform="matrix(1.9743,0,0,1,0,0)" width="79.04"/>
  <atv:overwrite id="id_0" transform="matrix(1.9743,0,0,1,0,0)" width="81.04"/>
 </svg>
 <text atv:refpx="560.46" atv:refpy="559.983" fill="$FONTCOLOR$" font-family="Arial" font-size="12" font-style="italic" id="id_20" x="539.491" y="564.483">HH:mm</text>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols" ExportedBrowseName="1:Symbols" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS" BrowseName="1:OBJECTDISPLAYS">
		<DisplayName Locale="en">OBJECTDISPLAYS</DisplayName>
		<Description Locale="en">OBJECTDISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols" BrowseName="1:Symbols">
		<DisplayName Locale="en">Symbols</DisplayName>
		<Description Locale="en">Symbols</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60" BrowseName="1:60x60">
		<DisplayName Locale="en">60x60</DisplayName>
		<Description Locale="en">60x60</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60.Mail" BrowseName="1:Mail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg enable-background="new 0 0 50 50" height="60" id="Ebene_1" version="1.1" width="60" x="0px" xml:space="preserve" y="0px" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <metadata>
  <atv:parameter behavior="optional" defaultvalue="#000000" desc="symbol color" name="symbolColor" substitute="$SYMBOLCOLOR$" valuetype="color"/>
  <atv:gridconfig enabled="false" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="false" height="10" width="10"/>
 </metadata>
 <polygon atv:refpx="77.955" atv:refpy="33.19" fill="none" id="id_2" points="11.875,2.986 11.875,57.341 48.113,57.341 48.113,15.066 36.034,2.986" stroke="$SYMBOLCOLOR$" stroke-width="2.415"/>
 <polyline atv:refpx="121.526" atv:refpy="10.099" fill="$SYMBOLCOLOR$" id="id_3" points="35.43,4.053 35.43,16.133 47.509,16.133" stroke="none" stroke-width="2.415"/>
 <rect atv:refpx="65.596" atv:refpy="14.683" fill="$SYMBOLCOLOR$" height="1.755" id="id_4" stroke="none" stroke-width="2.422" width="16.429" x="16.063" y="13.806"/>
 <rect atv:refpx="65.6" atv:refpy="9.126" fill="$SYMBOLCOLOR$" height="1.755" id="id_6" stroke="none" stroke-width="2.422" width="16.429" x="16.063" y="8.249"/>
 <rect atv:refpx="29.996" atv:refpy="68.956" fill="$SYMBOLCOLOR$" height="1.755" id="id_7" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="19.359"/>
 <rect atv:refpx="30" atv:refpy="164.228" fill="$SYMBOLCOLOR$" height="1.755" id="id_8" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="51.118"/>
 <rect atv:refpx="30" atv:refpy="149.373" fill="$SYMBOLCOLOR$" height="1.755" id="id_9" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="46.168"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <text atv:refpx="54.68" atv:refpy="27.093" fill="$SYMBOLCOLOR$" font-family="Arial" font-size="20" font-weight="bold" id="id_0" transform="matrix(0.5594,0,0,0.5594,4.9576,10.4582)" x="15.752" y="47.236">E-Mail</text>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60" ExportedBrowseName="1:60x60" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS" BrowseName="1:OBJECTDISPLAYS">
		<DisplayName Locale="en">OBJECTDISPLAYS</DisplayName>
		<Description Locale="en">OBJECTDISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols" BrowseName="1:Symbols">
		<DisplayName Locale="en">Symbols</DisplayName>
		<Description Locale="en">Symbols</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60" BrowseName="1:60x60">
		<DisplayName Locale="en">60x60</DisplayName>
		<Description Locale="en">60x60</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60.Mail" BrowseName="1:Mail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg enable-background="new 0 0 50 50" height="60" id="Ebene_1" version="1.1" width="60" x="0px" xml:space="preserve" y="0px" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <metadata>
  <atv:parameter behavior="optional" defaultvalue="#000000" desc="symbol color" name="symbolColor" substitute="$SYMBOLCOLOR$" valuetype="color"/>
  <atv:gridconfig enabled="false" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="false" height="10" width="10"/>
 </metadata>
 <polygon atv:refpx="77.955" atv:refpy="33.19" fill="none" id="id_2" points="11.875,2.986 11.875,57.341 48.113,57.341 48.113,15.066 36.034,2.986" stroke="$SYMBOLCOLOR$" stroke-width="2.415"/>
 <polyline atv:refpx="121.526" atv:refpy="10.099" fill="$SYMBOLCOLOR$" id="id_3" points="35.43,4.053 35.43,16.133 47.509,16.133" stroke="none" stroke-width="2.415"/>
 <rect atv:refpx="65.596" atv:refpy="14.683" fill="$SYMBOLCOLOR$" height="1.755" id="id_4" stroke="none" stroke-width="2.422" width="16.429" x="16.063" y="13.806"/>
 <rect atv:refpx="65.6" atv:refpy="9.126" fill="$SYMBOLCOLOR$" height="1.755" id="id_6" stroke="none" stroke-width="2.422" width="16.429" x="16.063" y="8.249"/>
 <rect atv:refpx="29.996" atv:refpy="68.956" fill="$SYMBOLCOLOR$" height="1.755" id="id_7" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="19.359"/>
 <rect atv:refpx="30" atv:refpy="164.228" fill="$SYMBOLCOLOR$" height="1.755" id="id_8" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="51.118"/>
 <rect atv:refpx="30" atv:refpy="149.373" fill="$SYMBOLCOLOR$" height="1.755" id="id_9" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="46.168"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <text atv:refpx="54.68" atv:refpy="27.093" fill="$SYMBOLCOLOR$" font-family="Arial" font-size="20" font-weight="bold" id="id_0" transform="matrix(0.5594,0,0,0.5594,4.9576,10.4582)" x="15.752" y="47.236">E-Mail</text>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailManager" ExportedBrowseName="1:MailManager" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS" BrowseName="1:DISPLAYSCRIPTS">
		<DisplayName Locale="en">DISPLAYSCRIPTS</DisplayName>
		<Description Locale="en">DISPLAYSCRIPTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailManager" BrowseName="1:MailManager" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailManager</DisplayName>
		<Description Locale="en">MailManager</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.DisplayScript</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <help/>
  </metadata>
  <code><![CDATA[/**
 * Code for the Mail manager object displays
 * ----------------------------------------------------------
 * The Mail manager list all configurations and can modifiy them.
 *
 */

/**
 * DECLARATION SECTION
 */

var webMIQueryProperties = {};
var tableID = (webMIQueryProperties.tableID = webMI.query["tableID"]);
var priority = (webMIQueryProperties.priority = parseFloat(
	webMI.query["priority"] != undefined ? webMI.query["priority"] : 0
));
var rightWrite = (webMIQueryProperties.rightWrite = webMI.query["rightWrite"]);
var rightExport = (webMIQueryProperties.rightExport = webMI.query["rightExport"]);
var rightGenerate = (webMIQueryProperties.rightGenerate = webMI.query["rightGenerate"]);
var edit_display = (webMIQueryProperties.edit_display = webMI.query["edit_display"]);
var header_height = (webMIQueryProperties.header_height = parseInt(webMI.query["header_height"]));
var row_height = (webMIQueryProperties.row_height = parseInt(webMI.query["row_height"]));
var font_family = (webMIQueryProperties.font_family = webMI.query["font_family"]);
var header_font_size = (webMIQueryProperties.header_font_size = webMI.query["header_font_size"]);
var detail_font_size = (webMIQueryProperties.detail_font_size = webMI.query["detail_font_size"]);
var footer_font_size = (webMIQueryProperties.footer_font_size = webMI.query["footer_font_size"]);
var row_font_size = (webMIQueryProperties.row_font_size = webMI.query["row_font_size"]);
var theme_class = (webMIQueryProperties.theme_class = webMI.query["theme_class"]);
var paging = (webMIQueryProperties.paging = webMI.query["paging"]);
var filterBar = (webMIQueryProperties.filterBar = webMI.query["filterBar"]);
var filterRegExp = (webMIQueryProperties.filterRegExp = webMI.query["filterRegExp"]);
var filterStar = (webMIQueryProperties.filterRegExp = webMI.query["filterStar"]);
var filterCaseSensitive = (webMIQueryProperties.filterCaseSensitive = webMI.query["filterCaseSensitive"]);
var filterMinInputLength = (webMIQueryProperties.filterMinInputLength = webMI.query["filterMinInputLength"]);
var linebreak = (webMIQueryProperties.linebreak = webMI.query["linebreak"]);
var columnReorder = (webMIQueryProperties.columnReorder = webMI.query["columnReorder"]);
var showMenu = (webMIQueryProperties.showMenu = webMI.query["showMenu"]);
var showMenuCustomTitle = (webMIQueryProperties.showMenuCustomTitle = webMI.query["showMenuCustomTitle"]);
var showPickerMenuTitle = (webMIQueryProperties.showPickerMenuTitle = webMI.query["showPickerMenuTitle"]);
var showPickerMenu = (webMIQueryProperties.showPickerMenu = webMI.query["showPickerMenu"]);
var menuWidth = (webMIQueryProperties.menuWidth = webMI.query["menuWidth"]);
var menuHeight = (webMIQueryProperties.menuHeight = webMI.query["menuHeight"]);
var multicellselect = (webMIQueryProperties.multicellselect = webMI.query["multicellselect"]);
var globalFontConfig = (webMIQueryProperties.globalFontConfig = webMI.query["globalFontConfig"]);
var globalColorConfig = (webMIQueryProperties.globalColorConfig = webMI.query["globalColorConfig"]);
var globalBorderColor = (webMIQueryProperties.globalBorderColor = webMI.query["globalBorderColor"]);
var globalFillColor = (webMIQueryProperties.globalFillColor = webMI.query["globalFillColor"]);
var globalFontColor = (webMIQueryProperties.globalFontColor = webMI.query["globalFontColor"]);
var globalSymbolColor = (webMIQueryProperties.globalSymbolColor = webMI.query["globalSymbolColor"]);

var baseDir = "AGENT.OBJECTS.ATVISE.MailManagement";
var config_rights = {};
var node_rights = [];
var nodes = [
			"SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailReadConfiguration",
			"SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailWriteConfiguration",
			"SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.AddNode",
			"SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.CheckNodeExists",
			"SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.SetNodeValue",
			baseDir,
			baseDir + ".sendMailLog",
			baseDir + ".sendMail"
		];
 
var enableConfigWrite = rightWrite == "";
var enableExport = rightExport == "";
var enableReportGenerate = rightGenerate == "";
var topWindow = parent;

var Tables, containerID, mainTableColumnsObject, mainTableColumnsFields, mainTableColumnTitlesDic;
var slickStyler;
var slickConfigurator;
var tableLoaded = false;
var tableLayer, tableLayerWidth;
var currentScaleFactor = 1;
var screenCTM = webMI.gfx.getScreenCTM(true);
var heightTransformationFactor = screenCTM.d;
var acknConfHeaderSpan1, acknConfCommentHeaderSpan1;
var columnSettings;
var deviceScaling = webMI.query["deviceScaling"] == "true";
var maxColumnPriority;
var fontMultiplicator;

var contextMenuStyle = {};
var fontSizeToTransformationFactor = 0.065;
var offsetButtons1 = 0;
var offsetButtons2 = 0;
var columnDefinitions;
var hasBrowseNodes = webMI.getMethodSupport().indexOf("BrowseNodes") !== -1;

var dataController; 
var tableController;

var columns = [
	{alignmentMain:"", columnName:"T{Edit}", field: "edit", filter: "false", fontSizeDetail: "", fontSizeMain: "", orderMain: "1", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "50"},
	{alignmentMain:"", columnName:"T{Name}", field: "name", filter: "true", fontSizeDetail: "", fontSizeMain: "", orderMain: "2", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "100"},
	{alignmentMain:"", columnName:"T{Active}", field: "active",	filter: "false", fontSizeDetail: "", fontSizeMain: "", orderMain: "4", priority: "4", sortable: "true", textoption: "", type: "bool", visibleMain: "true", widthMain: "50"},
	{alignmentMain:"", columnName:"T{Weekday(s)}", field: "weekdays", filter: "true", fontSizeDetail: "", fontSizeMain: "", orderMain: "5", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "250"},
	{alignmentMain:"", columnName:"T{Time}", field: "time", filter: "true", fontSizeDetail: "", fontSizeMain: "",  orderMain: "7", priority: "4", sortable: "true", textoption: "", type: "time", visibleMain: "true", widthMain: "250"},
	{alignmentMain:"", columnName:"T{Priority}", field: "priority", filter: "true", fontSizeDetail: "", fontSizeMain: "", orderMain: "8", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "50"}
	
	];
var countColumns = Object.keys(columns).length;

/**
 * ACCESS CONTROL SETTINGS
 */
var accessControlManager = false;

function getNodeRights(callback) {
	accessControlManager.getRights(nodes, (response) => {
		node_rights = response.result;
		
		if(callback)
			callback();
	});
}

if (webMI.getAccessControlSupport()) {
	accessControlManager = webMI.callExtension("SYSTEM.LIBRARY.ATVISE.QUICKDYNAMICS.Access Control Manager");
	getNodeRights();
}


/**
 * RUNTIME SECTION
 */

if (deviceScaling) {
	maxColumnPriority = webMI.getClientInfo()
		? webMI.getClientInfo().isDesktop
			? webMI.query["maxColumnPriority"]
			: webMI.getClientInfo().isTablet
				? 2
				: 1
		: webMI.query["maxColumnPriority"];
	fontMultiplicator = webMI.getClientInfo()
		? webMI.getClientInfo().deviceScaling.table.fontsize
			? webMI.getClientInfo().deviceScaling.table.fontsize
			: 1
		: 1;
	header_font_size = header_font_size * fontMultiplicator;
	row_font_size = row_font_size * fontMultiplicator;
	detail_font_size = detail_font_size * fontMultiplicator;
	footer_font_size = footer_font_size * fontMultiplicator;
}

columnDefinitions = getColumnDefinitions(columns);

contextMenuStyle = {
	maxRows: 10,
	fontFamily: "Arial",
	fontSize: row_font_size,
	fontFill: "#575757",
	width: 17 * row_font_size,
	fill: "#ffffff",
	stroke: "#575757",
	strokeWidth: 1,
	hoverFill: "#e5e5e5",
	closeTime: 0,
	zIndex: 100,
	showType: "right"
};

offsetButtons1 = 5;
offsetButtons2 = 0;
offsetButtons3 = 2;

webMI.addOnload(function () {
	if (webMI.getConfig("frame.scaletype") != "native") currentScaleFactor = webMI.frame.getCurrentScaleFactor();

	tableLayer = document.getElementById(tableID).parentElement.parentElement;

	tableLayerWidth = parseInt(tableLayer.style.width.replace("px", ""));
	tablePanelHeight = parseInt(webMI.gfx.getHeight("table_panel"));

	var footerHeight = parseInt(webMI.gfx.getHeight("table_footer"));

	if (rightWrite == undefined || rightWrite == "") {
	} else {
		if (rightWrite.search(/SYSTEM\.SECURITY\.RIGHTS\./) != -1)
			rightWrite = rightWrite.substring(23, rightWrite.length); //remove "prefix" SYSTEM.SECURITY.RIGHTS.

		webMI.addEvent(webMI.data, "clientvariableschange", function (e) {
			enableWriting = webMI.hasRight(rightWrite);

			if (enableWriting) {
				activeButton.icon.style.cursor = "pointer";
				inactiveButton.icon.style.cursor = "pointer";
			} else {
				activeButton.icon.style.cursor = "default";
				inactiveButton.icon.style.cursor = "default";
			}

			var activeButtonElements = parent.document.getElementsByClassName("activeButton");
			for (var i = 0; i < activeButtonElements.length; ++i) {
				if (enableWriting) {
					activeButtonElements[i].style.cursor = "pointer";
				} else { 
					activeButtonElements[i].style.cursor = "default";
				}
			}
			var inactiveElements = parent.document.getElementsByClassName("inactiveButton");
			for (var i = 0; i < inactiveButtonElements.length; ++i) {
				if (enableWriting) {
					inactiveButtonElements[i].style.cursor = "pointer";
				} else {
					inactiveButtonElements[i].style.cursor = "default";
				}
			}


			if (tableController && tableController.grid) tableController.grid.resizeCanvas();
		});
	}

	if (rightExport == "") {
	} else {
		if (rightExport.search(/SYSTEM\.SECURITY\.RIGHTS\./) != -1)
			rightExport = rightExport.substring(23, rightExport.length); //remove "prefix" SYSTEM.SECURITY.RIGHTS.

		webMI.addEvent(webMI.data, "clientvariableschange", function (e) {
			enableExport = webMI.hasRight(rightExport);
			if (typeof tableController != "undefined") {
				if (!enableExport) tableController.hideMenuEntriesByGroup("csv-commands");
				else tableController.showMenuEntriesByGroup("csv-commands");
			}

			if (tableController && tableController.grid) tableController.grid.resizeCanvas();
		});
	}

	var wasOffline = false;
	webMI.addEvent(webMI.data, "serverstatechange", function (e) {
		var state = e.active["connection-status"].primary || e.active["connection-status"].secondary;
		if (!state) {
			wasOffline = true;
		} else if (wasOffline) {
			wasOffline = false;
			liveArray = [];
			initLiveArray();
		}
	});

	if (isNaN(priority)) priority = 0;

	webMI.table.loadResources(function () {
		/* special for ie11 */
		function iconInnerHTML(icon, iconClass, dimensions) {
			var newIcon = icon;
			newIcon.setAttribute("visibility", "visible");
			newIcon.setAttribute("viewbox", "0 0 " + icon.getAttribute("width") + " " + icon.getAttribute("height"));
			if (dimensions) {
				newIcon.setAttribute("width", dimensions.width);
				newIcon.setAttribute("height", dimensions.height);
			}
			for (var ic in iconClass) {
				webMI.rootWindow.jQuery(newIcon).addClass(iconClass[ic]);
			}
			return webMI.rootWindow.jQuery("<div>").append(webMI.rootWindow.jQuery(newIcon).clone()).html(); // webMI.rootWindow.jQuery(newIcon).outerHTML;
		}

		/**
		 * Declaration of some ICONS
		 * @type {HTMLElement | null}
		 */

		var iconSelected = initIcon(
			"iconSelected",
			"",
			((fontSizeToTransformationFactor * 12.5) / 16) * header_font_size * heightTransformationFactor,
			null,
			null,
			"selected"
		);
		iconSelected.span.innerHTML = iconSelected.icon.outerHTML;

		var iconBurger = initIcon(
			"iconBurger",
			"",
			fontSizeToTransformationFactor * header_font_size * heightTransformationFactor,
			null,
			null,
			"burger"
		);
		iconBurger.span.innerHTML = iconBurger.icon.outerHTML;

		/* Differentiation between standard and scaled header */
		var headerRowHeightFactor = (header_height ? header_height : 20) / 20;

		var iconMessage = iconInnerHTML(document.getElementById("iconMessage"), [], {
			width: 80 * headerRowHeightFactor,
			height: 20 * headerRowHeightFactor
		});

		/* Scaling correction for external event listener **/
		var tableElement = document.getElementById(tableID);
		var scaleType = webMI.getConfig("frame.scaletype");
		if (scaleType == "zoom") {
			webMI.gfx.setScaledEvents(
				tableElement.parentElement.parentElement,
				false,
				false,
				tableElement.parentElement
			);
		}

		containerID = document.getElementById(tableID).id;

		var config = {};
		config.mode = "once";
		config.columns = columnDefinitions.mainTableColumns;
		config.containerID = document.getElementById(tableID).id;
		config.dataRequestFunction = {};
		//config.bufferInterval = 25;
		//config.renderInterval = 100;
		config.rowFormatter = rowFormatter;

		/* get settings from query param */
		var settings = {};
		var heightMultiplicator = 1;
		if (deviceScaling) {
			heightMultiplicator = webMI.getClientInfo() ? webMI.getClientInfo().deviceScaling.table.rowheight : 1;
		}
	
		config.onClickCallback = function (e, clickinfo) {
			clickHandler(clickinfo);
		};

		settings.multiselect = true;
		settings.header_height = (header_height / currentScaleFactor) * heightMultiplicator * heightTransformationFactor;
		settings.row_height = (row_height / currentScaleFactor) * heightMultiplicator * heightTransformationFactor;
		settings.font_family = font_family;
		settings.header_text_size = (header_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.detail_text_size = (detail_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.footer_text_size = (footer_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.row_text_size = (row_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.theme_class = theme_class;
		settings.paging = paging;
		settings.filterBar = filterBar;
		settings.filterRegExp = filterRegExp;
		settings.filterStar = filterStar;
		settings.filterCaseSensitive = filterCaseSensitive;
		settings.filterLength = filterMinInputLength;
		settings.filterConversion = {
			timestamp: ["datetime"]
		};
		settings.linebreak = linebreak;
		settings.columnReorder = columnReorder;
		settings.showMenu = showMenu;
		settings.showMenuCustomTitle = showMenuCustomTitle;
		settings.showPickerMenuTitle = showPickerMenuTitle;
		settings.showPickerMenu = showPickerMenu;
		settings.showMenuWidth = (menuWidth * row_font_size) / 12 / currentScaleFactor;
		settings.showMenuHeight = menuHeight / currentScaleFactor;
		settings.multicellselect = multicellselect;
		settings.icons = [];
		settings.icons.selector = typeof iconSelected == "undefined" ? false : iconSelected.icon.outerHTML;
		settings.icons.burger = typeof iconBurger == "undefined" ? false : iconBurger.span.outerHTML;
		settings.notification = document.getElementById("notification_area").getAttribute("id");
		var translation = {
			title_export: "T{Export}",
			title_command: "T{Filter}",
			title_picker: "T{Columns}",
			export_csv: "T{All rows with displayed columns}",
			export_csv_wh: "T{All rows with all columns}",
			export_csv_m: "T{Marked rows with displayed columns}",
			export_csv_mwh: "T{Marked rows with all columns}",
			export_option_timestamp: "T{Export time as timestamp}",
			export_option_milliseconds: "T{Precision in milliseconds}",
			filter_show_hide: "T{Show or hide filter}",
			filter_clear: "T{Reset filter}",
			sort_clear: "T{Reset sorting}",
			tooltip_details: "T{Action}",
			tooltip_marks: "T{Set/Cancel marks}"
		};
		settings.translation = translation;

		/* add globals to settings */
		for (var key in globalFontConfig) {
			var value = globalFontConfig[key];
			if (typeof value.size != "undefined") settings[key] = value.size;
		}
		for (var key in globalColorConfig) {
			var value = globalColorConfig[key];
			if (typeof value.color != "undefined") settings[key] = value.color;
		}

		/* get custom styling */
		var styling = webMI.table.request(tableID, "styling");
		for (var key in styling) {
			var value = styling[key];
			if (typeof value != "undefined") settings[key] = value;
		}

		/* global fallback colors */
		var fallbacks = {};
		fallbacks.globalBorderColor = globalBorderColor;
		fallbacks.globalFillColor = globalFillColor;
		fallbacks.globalFontColor = globalFontColor;
		fallbacks.globalSymbolColor = globalSymbolColor;

		slickConfigurator = new webMI.rootWindow.SlickConfigurator(config, settings, fallbacks);
		var tableConfig = slickConfigurator.getConfig();

		webMI.table.register(tableID, "ControllerConfig", tableConfig);
		webMI.table.setReady(tableID, "ControllerConfig");

		webMI.table.waitReady(tableID, "ControllerConfig", function () {
			dataController = new webMI.rootWindow.DataController();
			tableController = new webMI.rootWindow.SlickController(dataController, tableConfig);

			tableController.webMIQuery = webMIQueryProperties;

			webMI.table.register(tableID, "controller", tableController);

			/**
			 * Add message icon to notification_area and configure listener
			 */
			webMI.rootWindow
				.jQuery("#" + settings.notification)
				.append(webMI.rootWindow.jQuery(iconMessage).clone())
				.html();
			webMI.addEvent("notification_area", "click", function (e) {
				tableController.notification.handleEvent(e, null);
			});

			/**
			 * Hide show notification button
			 */
			var panel = [];
			panel.element = document.getElementById(tableID); // config.containerID);
			panel.width = panel.element.offsetWidth;

			var noteButton = [];
			noteButton.element = document.getElementById("id_notification");

			var topDefault = parseInt(noteButton.element.style.top.replace("px", ""), 10);
			topDefault = topDefault - 1;
			noteButton.top = topDefault + "px";
			noteButton.icon = [];
			noteButton.icon.id = document.getElementById("iconMessage").id;
			noteButton.icon.container = noteButton.element.querySelector("#" + noteButton.icon.id);
			noteButton.icon.width = noteButton.icon.container.width.baseVal.value;
			noteButton.icon.height = noteButton.icon.container.height.baseVal.value;

			noteButton.wrapper = [];
			noteButton.wrapper.element = noteButton.icon.container.parentElement.parentElement.parentElement;
			noteButton.wrapper.left = parseInt(noteButton.wrapper.element.style.left.replace("px", ""), 10);
			noteButton.wrapper.element.style.left = noteButton.wrapper.left + 80 - 80 * headerRowHeightFactor + "px";
			noteButton.wrapper.element.style.width = 80 * headerRowHeightFactor + "px";
			noteButton.wrapper.element.style.height = 20 * headerRowHeightFactor + "px";

			noteButton.element.style.width = 80 * headerRowHeightFactor + "px";
			noteButton.element.style.height = 20 * headerRowHeightFactor + "px";

			tableController.hideNotificatonButton = function () {
				noteButton.element.style.top = "-100px";
				noteButton.element.style.display = "none";
			};
			tableController.showNotificatonButton = function () {
				noteButton.element.style.top = noteButton.top;
				noteButton.element.style.display = "block";

				/* correction for parent */
				var header = [];
				header.container = [];
				header.container.content = document.getElementById(tableID);
				header.container.top = parseInt(
					header.container.content.parentElement.parentElement.style.top.replace("px", ""),
					10
				);
				header.container.left = parseInt(
					header.container.content.parentElement.parentElement.style.left.replace("px", ""),
					10
				);
				header.container.height = parseInt(
					header.container.content.parentElement.parentElement.style.height.replace("px", ""),
					10
				);

				header.column = [];
				header.column.content = header.container.content.getElementsByClassName("slick-header-columns")[0];
				header.column.width = parseInt(header.column.content.style.width.replace("px", ""), 10);
				header.column.left = parseInt(header.column.content.style.left.replace("px", ""), 10);
				header.column.height = header.column.content.offsetHeight;
				header.offset = header.container.left + header.column.left + header.column.width;

				setTimeout(function () {
					if (webMI.getConfig("frame.scaletype") === "zoom") {
						var buttonElement = noteButton.element;
						var origHeight = 20 * headerRowHeightFactor;
						var origWidth = 80 * headerRowHeightFactor;
						var transHeight = buttonElement.getClientRects()[0].height;
						var transWidth = buttonElement.getClientRects()[0].width;

						var heightFactor = transHeight / origHeight;
						var widthFactor = transWidth / origWidth;

						var scaleString = "scale(" + widthFactor + "," + heightFactor + ")";

						buttonElement.style.transformOrigin = "0 0";
						buttonElement.style.transform = scaleString;
						buttonElement.style.width = origWidth + "px";
						buttonElement.style.height = origHeight + "px";
						buttonElement.style.float = null;

						/* [AT-D-12385] wrapper */
						buttonElement.children[0].children[0].style.float = null;
					} else if (webMI.getConfig("frame.scaletype") === "transform") {
						var filters = document.getElementById("filters_bg");
						var container = filters.parentElement.parentElement;
						var buttonElement = noteButton.element;
						var noteArea = buttonElement.children[0].children[0];
						var iconMessage = noteArea.children[0];
						var widthFactor = container.getAttribute("transform") ? webMI.gfx.getScreenCTM().a : 1;
						var heightFactor = container.getAttribute("transform") ? webMI.gfx.getScreenCTM().d : 1;

						noteArea.style.width = 0;
						noteArea.style.height = 0;
						noteArea.style.float = null;

						var scaleString = "scale(" + widthFactor + "," + heightFactor + ")";

						iconMessage.style.transform = scaleString;
						iconMessage.style.transformOrigin = "0 0";
						iconMessage.style.width = origWidth + "px";
						iconMessage.style.height = origHeight + "px";
					}
				});
			};

			tableController.hideNotificatonButton();

			/**
			 * init table
			 */
			tableController.init(function () {
				/* apply custom css to all components */
				slickStyler = new webMI.rootWindow.SlickStyler();
				slickStyler.generate(tableConfig.containerID, tableConfig.style);

				webMI.table.setReady(tableID, "controller");

				if (!tableController || !tableController.grid) return;

				var cols = tableController.grid.getColumns();

				if (!enableExport) tableController.hideMenuEntriesByGroup("csv-commands");
				tableController.grid.resizeCanvas();
				tableLoaded = true;
				
				getConfigurations();
			});
		});
	});
});

function clickHandler(clickinfo) {
	var clickColumns = ["active", "edit"];

	if (clickColumns.indexOf(clickinfo.column.id) < 0) {
		return;
	}

	/* prevent double click events of fast changes */
	if (typeof clicklock != "undefined" && clicklock) return;
	else clicklock = true;

	setTimeout(function preventDoubleClick() {
		clicklock = false;
	}, 250);
	
	var configuration = clickinfo.item.sortId;

	/* handle active / inactive state click */
	if (clickinfo.column.id == "active") {
		/*		
		if (clickinfo.item.advanced || (clickinfo.item.rights && !clickinfo.item.rights.write))
			return;
		*/
		webMI.data.call("MailReadConfiguration", {configuration: configuration}, function(cfg) {
			//toggle state
			cfg.active = (cfg.active === "true") ? "false" : "true";

			
			if (cfg.template) cfg.template = cfg.template.replaceAll("\\","\\\\");
			if (cfg.xlsxReport) cfg.xlsxReport = cfg.xlsxReport.replaceAll("\\","\\\\");
			if (cfg.pdfReport) cfg.pdfReport = cfg.pdfReport.replaceAll("\\","\\\\");
			if (cfg.htmlReport) cfg.htmlReport = cfg.htmlReport.replaceAll("\\","\\\\");

			//force inactive state without config check in config handler
			if (!cfg.active)
				cfg.force = true;

			webMI.data.call("MailWriteConfiguration", {configuration: JSON.stringify(cfg)}, function(e) {
				if (e.error) {
					webMI.display.openWindow({
						display: "SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.message_dialog_small",
						extern: false,
						width: 400,
						height: 140 + 20,
						menubar: false,
						modal: true,
						movable: true,
						resizable: false,
						scrollbars: false,
						status: false,
						title: "T{Warning}",
						toolbar: false,
						query: {
							btn1: "T{OK}",
							message: e.errorstring ? e.errorstring : "T{Unknown error occured}.",
							headline: "T{Error}",
						}
					});
				} else {
					getConfigurations();
				}
			});
		})
		return;
	}

	/* handle settings click */
	if (clickinfo.column.id == "edit") {
		/*		
		if (clickinfo.item.advanced || (clickinfo.item.rights && !clickinfo.item.rights.write))
			return;
		*/
		webMI.display.openWindow({
			display: edit_display,
			extern: false,
			height: 700 + 20,
			menubar: false,
			modal: true,
			movable: true,
			resizable: true,
			scrollbars: false,
			status: false,
			title: "T{Edit}",
			toolbar: false,
			width: 700,
			query: { configuration: configuration }
		});
		return;
	}
}

//cleanup subscriptions
webMI.addOnunload(function () {
	try {
		webMI.table.register(tableID, "controller", null, true);
	} catch (ex) {
		/* already unregistered */
	}

	/* remove functions */
	if (tableController) {
		tableController.hideNotificatonButton();
		tableController.showNotificatonButton = undefined;
		tableController.hideNotificatonButton = undefined;
	}

	slickConfigurator = undefined;

	try {
		slickStyler.unload();
		slickStyler = undefined;
	} catch (ex) {
		/* already unset */
	}

	try {
		tableController.destroy();
		tableController = undefined;
	} catch (ex) {
		/* already unset */
	}
});

/**
 * FUNCTION SECTION
 */


/**
 * @async
 * @param {string|Array<string>} methodNames webMI-method name to check execution right for
 * @returns {Promise<boolean>}
 */
async function hasExecutionRightsFor(methodNames) {
	if (typeof methodNames === "string") {
		methodNames = [methodNames];
	}

	let methodAddresses = methodNames.map((methodNames) => {
		return `SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.${methodNames}`;
	});

	let getRightsParam2 = methodNames.map(() => {
		return "execute";
	});

	return new Promise((resolve) => {
		accessControlManager.getRights(methodAddresses, getRightsParam2, (response) => {
			if (
				response.result
					.map((r) => {
						return r.value;
					})
					.includes(false)
			) {
				resolve(false);
			} else {
				resolve(true);
			}
		});
	});
}


function initIcon(domId, title, transform, right, iconClass, iconType) {
	var icon = document.getElementById(domId);
	if (!icon) return;

	var iconClickarea = document.getElementById(domId + "_clickarea");
	if (iconClickarea && iconClass) iconClickarea.setAttribute("class", iconClass);
	var transformFactor = transform / currentScaleFactor;

	var originalButtonSize = parseInt(icon.height.baseVal.value);
	var transformedButtonSize = transformFactor * originalButtonSize;
	var buttonOffsetX = 0;
	var buttonOffsetY = 0;

	var iconGroup = document.getElementById(domId + "_group");
	if (iconGroup) {
		iconGroup.setAttribute(
			"transform",
			"matrix(" + transformFactor + ",0,0," + transformFactor + "," + buttonOffsetX + "," + buttonOffsetY + ")"
		);
	}
	icon.style.height = originalButtonSize * transformFactor + "px";
	icon.style.width = originalButtonSize * transformFactor + "px";

	if (right) {
		icon.style.cursor = "pointer";
	}
	icon.setAttribute("visibility", "visible");

	var span = parent.document.createElement("span");
	span.setAttribute("title", title);
	span.style.display = "grid";
	return {icon: icon, group: iconGroup, clickarea: iconClickarea, span: span};
}


function formatString(obj, attribute) {
	if (obj[attribute]) {
		let text = typeof obj[attribute] === "string" ? obj[attribute] : obj[attribute]["T{}"];
		text = webMI.escapeHTML(text);

		try {
			return webMI.sprintf(text, obj, "T{}");
		} catch (err) {
			console.error(attribute + ": " + text + "\n error: " + err);
		}
	}
	return "";
}



function getColumnDefinitions(columnSettings) {
	var mainTableColumns = [];
	var detailTableColumns = [];

	for (var prop in columnSettings) {
		// skip loop if the property is from prototype
		if (!columnSettings.hasOwnProperty(prop)) continue;

		var colParameters = columnSettings[prop];

		var cPrio = parseInt(colParameters.priority, 10);
		var mPrio = 10;

		//main table columns
		var column = {
			id: colParameters.field,
			name: colParameters.columnName,
			field: colParameters.field,
			alignment: colParameters.alignment,
			filter: colParameters.filter == "true",
			minWidth: 0,
			order: parseInt(colParameters.orderMain),
			sortable: colParameters.sortable == "true",
			textoption: colParameters.textoption,
			type: trimAndSplit(colParameters.type),
			visible: colParameters.visibleMain == "true" && cPrio <= mPrio
		};


		if (parseInt(colParameters.widthMain) > 0) {
			column.width = parseInt(colParameters.widthMain);
		}

		if (column.field == "lastCycle") {
			column.formatter = TimeStampFormatter;
		} else if (column.field == "active") {
			column.className = "dt-body-center";
			column.formatter = ActivationFormatter;
			column.type = "button";
		} else if (column.field == "cycleOffset") {
			column.formatter = CycleoffsetFormatter;
		} else if (column.field == "edit") {
			column.className = "dt-body-center";
			column.formatter = SettingsFormatter;
			column.type = "button";
		} else if (column.field == "actions") {
			column.className = "dt-body-center";
			column.sortable = false;
		} else if (column.type == "bool" && column.field != "value") {
			// !!! TAKE CARE! If some other boolean field, which is handled in the if clauses before it will not use this formatter
			column.formatter = BooleanFormatter;
		}else if (column.field == "weekdays" || column.field == "time" || column.field == "priority" || column.field == "name"){
			column.formatter = stringFormatter;		
		}

		mainTableColumns.push(column);


	}

	mainTableColumns.sort(columnCompareFunction);
	return {mainTableColumns: mainTableColumns};
}

//Custom compare function for Array.sort
function columnCompareFunction(a, b) {
	//The table colums are sorted by "order" and, if two ore more colums have the same "order", by "name".
	if (a.order < b.order) return -1;
	if (a.order > b.order) return 1;
	//if a.order == b.order sort by name:
	if (a.name.toUpperCase() < b.name.toUpperCase()) return -1;
	if (a.name.toUpperCase() > b.name.toUpperCase()) return 1;
	//if a.name.toUpperCase() == b.name.toUpperCase() return 0:
	return 0;
}

function trimAndSplit(input) {
	input = input.split(",");
	for (var i in input) input[i] = input[i].trim();
	return input;
}

/**
 * Formatters
 */
function SettingsFormatter(row, cell, value, columnDef, dataContext) {
	/*	
	if (dataContext.advanced || !dataContext.rights.write || (node_rights && !node_rights[1].rights.execute)) {
		return '<span style="width: 100%; text-align: center">-</span>';
	} else {
		return '<span style="width: 100%; text-align: center"><i class="fas fa-edit"></i></span>';
	}
	*/
	return '<span style="width: 100%; text-align: center"><i class="fas fa-edit"></i></span>';
}

function TimeStampFormatter(row, cell, value, columnDef, dataContext) {
	if (value) {
		var datetime = new Date(value);
			
		if (datetime != 'Invalid Date')
			return _makeConversions(["datetime","s"], datetime.getTime());
	}
	
	return value;
}

function ActivationFormatter(row, cell, value, columnDef, dataContext) {
	/*
	if (dataContext.advanced || !dataContext.rights.write|| (node_rights && !node_rights[1].rights.execute)) {
		return '<span style="width: 100%; text-align: center">' + (value ? 'T{true}' : 'T{false}') + '</span>';
	} else {
		return value
			? '<span style="width: 100%; text-align: center;"><i class="fas fa-check-square"></i></span>'
			: '<span style="width: 100%; text-align: center;"><i class="far fa-square"></i></span>';
	}
	*/
	return value ? '<span style="width: 100%; text-align: center;"><i class="fas fa-check-square"></i></span>' : '<span style="width: 100%; text-align: center;"><i class="far fa-square"></i></span>';
}

function CycleoffsetFormatter(row, cell, value, columnDef, dataContext) {
	if (typeof value == "undefined" || value === "")
		value = "-";

	return '<span style="width: 100%; text-align: center">' + value + " T{min.}" + '</span>';
}

function BooleanFormatter(row, cell, value, columnDef, dataContext) {
	if (value == true) return "T{true}";
	else if (value == false) return "T{false}";
	else return value;
}
function stringFormatter(row, cell, value, columnDef, dataContext) {
	return '<span style="width: 100%; text-align: center">' + value + '</span>';
}
function GenerateFormatter(row, cell, value, columnDef, dataContext) {
	if (value == false) return "";
	return (html =
		'<span style="width: 100%; text-align: center"><i class="fas fa-file-export"></i></span>');
}

// add item to the list
function addItem(item) {
	var name = item.name;
	var folder = item.name.split(".");
	
	item.sortId = name;
	item.name = folder[folder.length - 1];
	item.group = "";
	if (folder.length > 1)
		item.group = name.replace("." + item.name, "");

	tableController.addData({result: [item]});
}

// get data
var inProgress = null;
function getConfigurations() {
	if(webMI.getAccessControlSupport() && node_rights.length == 0) {
		setTimeout(function() { getConfigurations() }, 100);
		return;	
	}
		
	if(inProgress != null)
		return;

	inProgress = true;
	tableController.clearData();
	
	setTimeout(function() { 
		getStatus(function(status) {
			webMI.data.call("MailReadConfiguration", {}, function(e) {
				accessControlManager.clearRightsStorage();

				var configurations = e;
				var noderigths = [];
				
				if (typeof e.error != "undefined") {
					var errorstring = e.errorstring ? e.error + " (" + e.errorstring + ")" : e.error;
					errorstring = e.address ? errorstring + " T{for node} " + e.address : errorstring;
					tableController.setMessage("T{Error}: " + errorstring);
				}
				
				function handleItem(item) {
					item.lastCycle = "";
					if (status && status.log && status.log[item.name]) {
						if(status.log[item.name].result && status.log[item.name].result.success != true) {
							item.lastCycle = "T{Error}: " + status.log[item.name].result.errorstring;
						} else if (status.log[item.name].lastCycle) {
							item.lastCycle = new Date(status.log[item.name].lastCycle);
							item.lastCycle = item.lastCycle.getTime();
						} else {
							item.lastCycle = "-";
						}
					} else if (status == false) {
						item.lastCycle = "T{No permission}";
					} else {
						item.lastCycle = "-";
					}
					
					try {
						var cycleTime = item.cycleTime;
						var cycletext = "";
						if (cycleTime.daysOfWeek.length > 0) {
							if(cycletext.length > 0)
								cycletext += "; ";
							var weekdays = ""
							if (cycleTime.daysOfWeek.indexOf(1) > -1) 
								weekdays += "T{Mon.} ";
							if (cycleTime.daysOfWeek.indexOf(2) > -1) 
								weekdays += "T{Tue.} ";
							if (cycleTime.daysOfWeek.indexOf(3) > -1) 
								weekdays += "T{Wed.} ";
							if (cycleTime.daysOfWeek.indexOf(4) > -1) 
								weekdays += "T{Thu.} ";
							if (cycleTime.daysOfWeek.indexOf(5) > -1) 
								weekdays += "T{Fri.} ";
							if (cycleTime.daysOfWeek.indexOf(6) > -1) 
								weekdays += "T{Sat.} ";
							if (cycleTime.daysOfWeek.indexOf(0) > -1 || cycleTime.daysOfWeek.indexOf(7) > -1) 
								weekdays += "T{Sun.} ";
							cycletext += weekdays;
						}
					} catch(ex) {
					}
					item.active = JSON.parse(item.active);
					item.weekdays = cycletext;
					item.time = timeFormat(item.start)+" - "+timeFormat(item.end);			
					item.priority = item.prio.value;
					addItem(item);
				}
				
				if(webMI.getAccessControlSupport() && accessControlManager) {
					for (var i = 0; i < configurations.length; i++) {
						noderigths.push(baseDir + "." + configurations[i].name);
					}
					
					if(noderigths.length > 0) {
						accessControlManager.getRights(noderigths, (response) => {
							for (var i = 0; i < configurations.length; i++) {
								var item = configurations[i];
								
								if (!item)
									continue;
								
								item.rights = response.result[i].rights;
								
								handleItem(item);
							} 
							setTimeout(function() { inProgress = null }, 250);
						});	
					} else {
						setTimeout(function() { inProgress = null }, 250);
					}		
				} else {
					for (var i = 0; i < configurations.length; i++) {
						var item = configurations[i];
						
						if (!item)
							continue;
						
						handleItem(item);
					}
					setTimeout(function() { inProgress = null }, 250);
				}
			});
		});
	}, 150);
}
function timeFormat(d){
	d = Number(d) / 1000;
	var h = Math.floor(d / 3600);
	var m = Math.floor(d % 3600 / 60);
	var s = Math.floor(d % 3600 % 60);
	//h = h > 0 ? h + 1 : h;
	var hDisplay = h >= 10 ? h + ":" : "0"+ h +":";
	var mDisplay = m >= 10 ? m : "0"+ m;
	return hDisplay + mDisplay; 
}
function getStatus(callback) {
	if(!webMI.getAccessControlSupport() || !accessControlManager) {
		callback(false);
	} else {
		getNodeRights(function() {
			if(!node_rights[6].rights.read) {
				callback(false);
			} else {
				webMI.data.read(baseDir + ".sendMailLog", function(e) {
					callback(JSON.parse(e.value));
				});
			}
		});
	}
}

/**
 * Internal conversation of datetime
 * @param format
 * @param value
 * @returns {*}
 * @private
 */
function _makeConversions(format, value, wrapIntoSlickDiv) {
	if (typeof wrapIntoSlickDiv == "undefined") {
		wrapIntoSlickDiv = true;
	}
	if (format[0] == "datetime") {
		if (value) {
			if (typeof value == "string" && value.indexOf("-") > -1)
			//ignore already formatted values
				return value;

			var date = new Date(parseInt(value, 10));
			value = webMI.sprintf(
				"%d-%02d-%02d %02d:%02d:%02d.%03d",
				date.getFullYear(),
				date.getMonth() + 1,
				date.getDate(),
				date.getHours(),
				date.getMinutes(),
				date.getSeconds(),
				date.getMilliseconds()
			);

			if (typeof format[1] != "undefined" && format[1] == "s") {
				value = value.substring(0, value.indexOf("."));
			}
		} else {
			value = "";
		}
	}
	return wrapIntoSlickDiv ? '<div class="slick-cell-item">' + value + "</div>" : value;
}

function rowFormatter(item, rowIndex) {
	if (item.rowStyle) {
		return [item.rowStyle];
	} else {
		return [];
	}
}


/**
 * EVENT SECTION
 */

webMI.addOnresize(function () {
	if (webMI.getConfig("frame.scaletype") != "native") return;
	tableController.grid.resizeCanvas();
});

/**
 * TRIGGER SECTION
 */

webMI.trigger.connect(
	"clicked",
	function (e) {
		if (tableLoaded) {
			getConfigurations();
		}
	},
	"button_refresh"
);

webMI.trigger.connect(
	"clicked",
	function (e) {
		webMI.display.openWindow({
			display: edit_display,
			extern: false,
			height: 700 + 20,
			menubar: false,
			modal: true,
			movable: true,
			resizable: true,
			scrollbars: false,
			status: false,
			title: "T{Add}",
			toolbar: false,
			width: 700,
			query: {}
		});
	},
	"button_new"
);


webMI.trigger.connect(
	"clicked",
	function (e) {
		if (!tableController)
			return;
			
		var tableData = tableController.getData();
		var deleteItems = [];
		var rightMissingItems = [];
	
		for (var i=0; i < tableData.length; i++) {
			if (tableData[i].atvise_marker) {
				if (tableData[i].rights.engineer && node_rights && node_rights[1].rights.execute)
					deleteItems.push(tableData[i].group ? (tableData[i].group + "." + tableData[i].name) : tableData[i].name);
				else
					rightMissingItems.push(tableData[i].group ? (tableData[i].group + "." + tableData[i].name) : tableData[i].name);
			}
		}
		
		if (rightMissingItems.length == 0 && deleteItems.length == 0)
			deleteItems = "\nT{No configuration(s) selected.}";
		else if (deleteItems.length > 0)
			deleteItems = "\nT{Configuration(s)}: " + deleteItems.toString().replaceAll(",",", ");
		/*	
		if (rightMissingItems.length > 0)
			rightMissingItems = "\n\nT{Permission missing}: " + rightMissingItems.toString().replaceAll(",",", ");
		*/	
		webMI.display.openWindow({
			display: "SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.message_dialog",
			extern: false,
			width: 400,
			height: 240 + 20,
			menubar: false,
			modal: true,
			movable: true,
			resizable: false,
			scrollbars: false,
			status: false,
			title: "T{Delete}",
			toolbar: false,
			query: {
				btn1: "T{OK}",
				btn2: "T{Cancel}",
				headline: "T{Delete all selected configurations}?",
				msg1: deleteItems,
				msg2: rightMissingItems,
				action_btn1: "com.atvise.MailManager.deleteSelectedListEntries"
			}
		});
	},
	"button_delete"
);

webMI.trigger.connect("com.atvise.MailManager.deleteSelectedListEntries", function (e) {
	var tableData = tableController.getData();
	for (var i=0; i < tableData.length; i++) {
		if (tableData[i].atvise_marker) {
			webMI.data.call("MailDeleteConfiguration", {configuration: (tableData[i].group ? (tableData[i].group + "." + tableData[i].name) : tableData[i].name)}, function(result) {
				getConfigurations();
			});
		}		
	}
	
	e.value.close();
});

webMI.trigger.connect("com.atvise.MailManager.refreshList", function (e) {
	if (tableLoaded) {
		setTimeout(function() { getConfigurations() }, 250);
	}
});

//disable CSV button for mobile devices
if (
	/mobile|android|blackberry|fennec|iemobile|ip(hone|ad|od)|opera m(ob|in)i|playbook|silk|windows (ce|phone)/i.test(
		navigator.userAgent
	)
) {
	webMI.trigger.fire("com.atvise.setActive", false, "csv");
}]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailScheduler" ExportedBrowseName="1:MailScheduler" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS" BrowseName="1:DISPLAYSCRIPTS">
		<DisplayName Locale="en">DISPLAYSCRIPTS</DisplayName>
		<Description Locale="en">DISPLAYSCRIPTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailScheduler" BrowseName="1:MailScheduler" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailScheduler</DisplayName>
		<Description Locale="en">MailScheduler</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.DisplayScript</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <help/>
  </metadata>
  <code><![CDATA[var divider = ",";
var isNew = true;
var baseDir = "AGENT.OBJECTS.ATVISE.Mail";
var statusnode = baseDir + ".sendMailLog";
var locked = false;
var configuration_limit = 100;
var configuration_name = webMI.query.configuration;
var configuration = {};
configuration.name = "";
configuration.cycleTime = {};
configuration.start = 0;
configuration.end = 86399999;
configuration.alarm = {};
configuration.prio = {};
configuration.prio.active = true;
configuration.prio.operator = ">=";
configuration.prio.value = 601;
configuration.mail = "";
configuration.active = true;
configuration.nodes ={}
configuration.nodes.active = false;
configuration.nodes.address = "";
configuration.group ={}
configuration.group.active = false;
configuration.group.address = "";

/**
 * ACCESS CONTROL SETTINGS
 */
var accessControlManager = false;
if (webMI.getAccessControlSupport()) {
	accessControlManager = webMI.callExtension("SYSTEM.LIBRARY.ATVISE.QUICKDYNAMICS.Access Control Manager");
}

accessControlManager.clearRightsStorage([baseDir, statusnode]);

//get status and lock save button if more than maximal allowed configurations were found
if(webMI.getAccessControlSupport() && accessControlManager) {
	
	lockInputs(true);
	webMI.trigger.fire("com.atvise.setActive", false, "save_button");
	accessControlManager.getRights(statusnode, (response) => {
		if (response.result[0].rights.read) {
			webMI.data.read(statusnode, function(e) {
				if (e.value) {
					var status = JSON.parse(e.value);
					if (status.count > configuration_limit) {
						locked = true;
						setMessage("T{Error}: T{Maximal number of report configurations reached.} T{Limit}: " + configuration_limit, true);
						webMI.trigger.fire("com.atvise.setActive", false, "save_button");
					}
				} else {
					locked = true;
					setMessage("T{Error}: T{Cannot read mandatory status node.}", true);
					webMI.trigger.fire("com.atvise.setActive", false, "save_button");				
				}
			});
		} else {
			locked = true;
			setMessage("T{Error}: T{Cannot read mandatory status node.}", true);
			webMI.trigger.fire("com.atvise.setActive", false, "save_button");
		}
		
		if (!response.result[0].rights.write) {
			locked = true;
			setMessage("T{Error}: T{No permission to write configuration node.}", true);
			active = false;
		}
	});
	
}

//read configuration if specified
if (typeof configuration_name != "undefined" && configuration_name != "") {
	isNew = false;
	webMI.trigger.fire("com.atvise.setActive", false, "configuration_input");
	webMI.trigger.fire("com.atvise.setActive", false, "group_input");

	webMI.data.call("MailReadConfiguration", {configuration: configuration_name}, function(cfg) {
		if (cfg.error) {
			if (cfg.errorstring)
				setMessage("T{Error}: " + cfg.errorstring, true);
			else
				setMessage("T{Error}: Unknown error");
		} else {
			configuration = cfg;
			setValues();
		}
	});
	
	if(webMI.getAccessControlSupport() && accessControlManager) {
		accessControlManager.getRights(baseDir + "." + configuration_name, (response) => {
			if (!response.result[0].rights.engineer)
				webMI.trigger.fire("com.atvise.setActive", false, "delete_button");
		});
	}
	
} else {
	webMI.trigger.fire("setValue", "", "group_input");
	webMI.trigger.fire("setChecked", true, "weekdays_0");
	webMI.trigger.fire("setChecked", true, "weekdays_1");
	webMI.trigger.fire("setChecked", true, "weekdays_2");
	webMI.trigger.fire("setChecked", true, "weekdays_3");
	webMI.trigger.fire("setChecked", true, "weekdays_4");
	webMI.trigger.fire("setChecked", true, "weekdays_5");
	webMI.trigger.fire("setChecked", true, "weekdays_6");
	webMI.trigger.fire("com.atvise.setActive", false, "delete_button");
	webMI.trigger.fire("com.atvise.setActive", false, "start_input");
	webMI.trigger.fire("com.atvise.setActive", false, "end_input");
	webMI.trigger.fire("setValue", msToTime(configuration.start), "start_input");
	webMI.trigger.fire("setValue", msToTime(configuration.end), "end_input");
	webMI.trigger.fire("setChecked", configuration.prio.active, "prio_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_oper");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_input");
	webMI.trigger.fire("setSelectedItem", configuration.prio.operator, "prio_oper");
	webMI.trigger.fire("setValue", configuration.prio.value, "prio_input");	
	webMI.trigger.fire("setValue", configuration.mail, "email_input");
	webMI.trigger.fire("setChecked", configuration.group.active, "group_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.group.active, "group_picker");
	webMI.trigger.fire("setValue", configuration.group.address, "group_picker");
	webMI.trigger.fire("setChecked", configuration.nodes.active, "nodes_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.nodes.active, "address_picker");
	webMI.trigger.fire("setValue", configuration.nodes.address, "address_picker");
	webMI.trigger.fire("setChecked", true, "state_0");
	webMI.trigger.fire("setChecked", false, "state_1");
	webMI.trigger.fire("setChecked", false, "state_2");
	webMI.trigger.fire("setChecked", false, "state_3");
	webMI.trigger.fire("setChecked", false, "state_5");
	webMI.trigger.fire("setChecked", false, "active");
}

function lockInputs(bool) {
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_0");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_1");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_2");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_3");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_4");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_5");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_6");
	webMI.trigger.fire("com.atvise.setActive", !bool, "active");
	
	webMI.trigger.fire("com.atvise.setActive", !bool, "email_input");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_0");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_1");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_2");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_3");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_5");
	webMI.trigger.fire("com.atvise.setActive", !bool, "start_input");
	webMI.trigger.fire("com.atvise.setActive", !bool, "end_input");
}

function setValues() {
	var name = configuration.name.substring(configuration.name.lastIndexOf(".") + 1, configuration.name.length);
	if (typeof configuration.active == "undefined") configuration.active = true;
	if (typeof configuration.cycleTime != "object") configuration.cycleTime = {};
	if (typeof configuration.alarm != "object") configuration.alarm = {};
	if (configuration.prio.operator == "!=") configuration.prio.operator = "<>";
	webMI.trigger.fire("setValue", name, "configuration_input");
	webMI.trigger.fire("setValue", configuration.mail, "email_input");
	webMI.trigger.fire("setChecked", configuration.active == "true", "active");
	
	
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(0) > -1, "weekdays_0");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(1) > -1, "weekdays_1");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(2) > -1, "weekdays_2");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(3) > -1, "weekdays_3");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(4) > -1, "weekdays_4");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(5) > -1, "weekdays_5");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(6) > -1, "weekdays_6");

	webMI.trigger.fire("setValue", msToTime(configuration.start), "start_input");
	webMI.trigger.fire("setValue", msToTime(configuration.end), "end_input");
	webMI.trigger.fire("setChecked", configuration.nodes.active == "true", "nodes_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.nodes.active, "address_picker");
	webMI.trigger.fire("setValue", configuration.nodes.address, "address_picker");
	webMI.trigger.fire("setChecked", configuration.group.active == "true", "group_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.group.active, "group_picker");
	webMI.trigger.fire("setValue", configuration.group.address, "group_picker");
	webMI.trigger.fire("setChecked", configuration.prio.active == "true", "prio_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_oper");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_input");
	webMI.trigger.fire("setSelectedItem", configuration.prio.operator, "prio_oper");
	webMI.trigger.fire("setValue", configuration.prio.value, "prio_input");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(0) > -1, "state_0");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(1) > -1, "state_1");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(2) > -1, "state_2");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(3) > -1, "state_3");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(5) > -1, "state_5");
}
function setMessage(msg, error) {
	if (typeof msg == "undefined")
		msg = "";

	if (error)
		webMI.gfx.setFill("message", "#FF0000");
	else 
		webMI.gfx.setFill("message", "#00BB30");
	
	webMI.gfx.setText("message", msg);
}
function msToTime(duration) {
	var milliseconds = Math.floor((duration % 1000) / 100),
	minutes = Math.floor((duration / (1000 * 60)) % 60),
    hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
    hours = (hours < 10) ? "0" + hours : hours;
	minutes = (minutes < 10) ? "0" + minutes : minutes;
	return hours + ":" + minutes;
}
function timeToMs(time, e) {
	var timeParts = time.split(":");
	var ms;
	if(isNaN(timeParts[0])||isNaN(timeParts[1])){
		alert("T{Please enter the correct time format HH:mm}");
		return;
	}else if(timeParts[0]>23 || timeParts[1]>59){
		alert("T{Please enter the correct time format with a maximum time of 23:59}");
		return;
	}else{
		ms=(timeParts[0]==23 && timeParts[1]==59)?(+timeParts[0] * (60000 * 60)) + (+timeParts[1] * 60000) + 59999:(+timeParts[0] * (60000 * 60)) + (+timeParts[1] * 60000);
		(e=="from")?configuration.start=ms:configuration.end=ms;
	}
}
setMessage();
function handleNameChange() {
	if (locked)
		return;

	if (configuration.name[configuration.name.length-1] == ".") {
		setMessage("T{Error}: T{Name is empty or invalid.}", true);
		webMI.trigger.fire("com.atvise.setActive", false, "save_button");
		return;
	}

	if (webMI.getAccessControlSupport() && accessControlManager) {
		var config = baseDir + "." + configuration.name;
		setMessage();
		
		if (isNew) {
			var path = config.substring(0, config.lastIndexOf("."));
			accessControlManager.getRights([config, path], (response) => {
				var active = true;
				if (!response.result[1].rights.engineer) {
					setMessage("T{Error}: T{Group folder doesn't exist or permission is missing.}", true);
					active = false;
				}
				
				if (response.result[0].rights.engineer) {
					setMessage("T{Error}: T{Configuration already exist.}", true);
					active = false;
				}

				lockInputs(!active);
				webMI.trigger.fire("com.atvise.setActive", active, "save_button");
			});
		} else {
			accessControlManager.getRights(config, (response) => {
				var active = true;
				if (!response.result[0].rights.write) {
					setMessage("T{Error}: T{No permission to write configuration node.}", true);
					active = false;
				}

				lockInputs(!active);
				webMI.trigger.fire("com.atvise.setActive", active, "save_button");
			});	
		}
	}
}
function handleWeekydays(weekday, active) {
	var active = active == "true" ? true : false;
	
	if (typeof configuration.cycleTime != "object")
		return;
	
	if (typeof configuration.cycleTime.daysOfWeek == "undefined")
		configuration.cycleTime.daysOfWeek = [];

	var index = configuration.cycleTime.daysOfWeek.indexOf(weekday);

	if (active && index == -1) {
		configuration.cycleTime.daysOfWeek.push(weekday);
	} else if (!active && index > -1) {
		configuration.cycleTime.daysOfWeek.splice(index, 1)
	}
	
	configuration.cycleTime.daysOfWeek.sort();
}


function handleAlarmStates(state, active) {
	var active = active == "true" ? true : false;
	
	if (typeof configuration.alarm != "object")
		return;
	
	if (typeof configuration.alarm.state == "undefined")
		configuration.alarm.state = [];

	var index = configuration.alarm.state.indexOf(state);

	if (active && index == -1) {
		configuration.alarm.state.push(state);
	} else if (!active && index > -1) {
		configuration.alarm.state.splice(index, 1)
	}
	
	configuration.alarm.state.sort();
}

/**
 * TRIGGERS
 */

webMI.trigger.connect("valuechanged", function (e) {
	e.value = webMI.secureString(e.value);
	if (e.value.indexOf(".") > -1) {
		setMessage("T{Error}: T{Name is empty or invalid.}", true);
		webMI.trigger.fire("com.atvise.setActive", false, "save_button");
		return;
	}

	var group = configuration.name.substring(0, configuration.name.lastIndexOf("."));
	if (group)
		configuration.name = group + "." + e.value;
	else
		configuration.name = e.value;

	handleNameChange();
},"configuration_input");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(0, e.value);
},"weekdays_0");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(1, e.value);
},"weekdays_1");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(2, e.value);
},"weekdays_2");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(3, e.value);
},"weekdays_3");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(4, e.value);
},"weekdays_4");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(5, e.value);
},"weekdays_5");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(6, e.value);
},"weekdays_6");


webMI.trigger.connect("valuechanged", function (e) {
	timeToMs(e.value,"from");
},"start_input");

webMI.trigger.connect("valuechanged", function (e) {
	timeToMs(e.value,"to");
},"end_input");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.active = e.value;
},"active");

webMI.trigger.connect("valuechanged", function (e) {
	var mails = e.value;
	configuration.mail = mails.split(',');
},"email_input");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.nodes.active = e.value;
	webMI.trigger.fire("com.atvise.setActive", configuration.nodes.active, "address_picker");
},"nodes_act");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.nodes.address = e.value;
},"address_picker");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.group.active = e.value;
	webMI.trigger.fire("com.atvise.setActive", configuration.group.active, "group_picker");
},"group_act");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.group.address = e.value;
},"group_picker");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.prio.active = e.value;
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_oper");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_input");
},"prio_act");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.prio.operator = e.value;
},"prio_oper");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.prio.value = e.value;
},"prio_input");



webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(0, e.value);
},"state_0");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(1, e.value);
},"state_1");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(2, e.value);
},"state_2");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(3, e.value);
},"state_3");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(5, e.value);
},"state_5");


webMI.trigger.connect("clicked", function(e) {
	webMI.trigger.fire("com.atvise.setActive", false, "save_button");	
	setMessage();

	webMI.data.call("MailWriteConfiguration", {configuration: JSON.stringify(configuration)}, function(e) {
		if (e.error) {
			if (e.errorstring)
				setMessage("T{Error}: " + e.errorstring, true);
			else
				setMessage("T{Error}: T{Unknown error}", true);
		} else {
			setMessage("T{Configuration saved.}");
			webMI.trigger.fire("com.atvise.MailManager.refreshList");
			webMI.display.closeWindow();
		}
		
		webMI.trigger.fire("com.atvise.setActive", true, "save_button");
	});
}, "save_button");

webMI.trigger.connect("clicked", function (e) {
	webMI.display.closeWindow();	
},"cancel_button");
]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement" ExportedBrowseName="1:MailManagement" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS" BrowseName="1:DISPLAYSCRIPTS">
		<DisplayName Locale="en">DISPLAYSCRIPTS</DisplayName>
		<Description Locale="en">DISPLAYSCRIPTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailScheduler" BrowseName="1:MailScheduler" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailScheduler</DisplayName>
		<Description Locale="en">MailScheduler</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.DisplayScript</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <help/>
  </metadata>
  <code><![CDATA[var divider = ",";
var isNew = true;
var baseDir = "AGENT.OBJECTS.ATVISE.Mail";
var statusnode = baseDir + ".sendMailLog";
var locked = false;
var configuration_limit = 100;
var configuration_name = webMI.query.configuration;
var configuration = {};
configuration.name = "";
configuration.cycleTime = {};
configuration.start = 0;
configuration.end = 86399999;
configuration.alarm = {};
configuration.prio = {};
configuration.prio.active = true;
configuration.prio.operator = ">=";
configuration.prio.value = 601;
configuration.mail = "";
configuration.active = true;
configuration.nodes ={}
configuration.nodes.active = false;
configuration.nodes.address = "";
configuration.group ={}
configuration.group.active = false;
configuration.group.address = "";

/**
 * ACCESS CONTROL SETTINGS
 */
var accessControlManager = false;
if (webMI.getAccessControlSupport()) {
	accessControlManager = webMI.callExtension("SYSTEM.LIBRARY.ATVISE.QUICKDYNAMICS.Access Control Manager");
}

accessControlManager.clearRightsStorage([baseDir, statusnode]);

//get status and lock save button if more than maximal allowed configurations were found
if(webMI.getAccessControlSupport() && accessControlManager) {
	
	lockInputs(true);
	webMI.trigger.fire("com.atvise.setActive", false, "save_button");
	accessControlManager.getRights(statusnode, (response) => {
		if (response.result[0].rights.read) {
			webMI.data.read(statusnode, function(e) {
				if (e.value) {
					var status = JSON.parse(e.value);
					if (status.count > configuration_limit) {
						locked = true;
						setMessage("T{Error}: T{Maximal number of report configurations reached.} T{Limit}: " + configuration_limit, true);
						webMI.trigger.fire("com.atvise.setActive", false, "save_button");
					}
				} else {
					locked = true;
					setMessage("T{Error}: T{Cannot read mandatory status node.}", true);
					webMI.trigger.fire("com.atvise.setActive", false, "save_button");				
				}
			});
		} else {
			locked = true;
			setMessage("T{Error}: T{Cannot read mandatory status node.}", true);
			webMI.trigger.fire("com.atvise.setActive", false, "save_button");
		}
		
		if (!response.result[0].rights.write) {
			locked = true;
			setMessage("T{Error}: T{No permission to write configuration node.}", true);
			active = false;
		}
	});
	
}

//read configuration if specified
if (typeof configuration_name != "undefined" && configuration_name != "") {
	isNew = false;
	webMI.trigger.fire("com.atvise.setActive", false, "configuration_input");
	webMI.trigger.fire("com.atvise.setActive", false, "group_input");

	webMI.data.call("MailReadConfiguration", {configuration: configuration_name}, function(cfg) {
		if (cfg.error) {
			if (cfg.errorstring)
				setMessage("T{Error}: " + cfg.errorstring, true);
			else
				setMessage("T{Error}: Unknown error");
		} else {
			configuration = cfg;
			setValues();
		}
	});
	
	if(webMI.getAccessControlSupport() && accessControlManager) {
		accessControlManager.getRights(baseDir + "." + configuration_name, (response) => {
			if (!response.result[0].rights.engineer)
				webMI.trigger.fire("com.atvise.setActive", false, "delete_button");
		});
	}
	
} else {
	webMI.trigger.fire("setValue", "", "group_input");
	webMI.trigger.fire("setChecked", true, "weekdays_0");
	webMI.trigger.fire("setChecked", true, "weekdays_1");
	webMI.trigger.fire("setChecked", true, "weekdays_2");
	webMI.trigger.fire("setChecked", true, "weekdays_3");
	webMI.trigger.fire("setChecked", true, "weekdays_4");
	webMI.trigger.fire("setChecked", true, "weekdays_5");
	webMI.trigger.fire("setChecked", true, "weekdays_6");
	webMI.trigger.fire("com.atvise.setActive", false, "delete_button");
	webMI.trigger.fire("com.atvise.setActive", false, "start_input");
	webMI.trigger.fire("com.atvise.setActive", false, "end_input");
	webMI.trigger.fire("setValue", msToTime(configuration.start), "start_input");
	webMI.trigger.fire("setValue", msToTime(configuration.end), "end_input");
	webMI.trigger.fire("setChecked", configuration.prio.active, "prio_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_oper");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_input");
	webMI.trigger.fire("setSelectedItem", configuration.prio.operator, "prio_oper");
	webMI.trigger.fire("setValue", configuration.prio.value, "prio_input");	
	webMI.trigger.fire("setValue", configuration.mail, "email_input");
	webMI.trigger.fire("setChecked", configuration.group.active, "group_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.group.active, "group_picker");
	webMI.trigger.fire("setValue", configuration.group.address, "group_picker");
	webMI.trigger.fire("setChecked", configuration.nodes.active, "nodes_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.nodes.active, "address_picker");
	webMI.trigger.fire("setValue", configuration.nodes.address, "address_picker");
	webMI.trigger.fire("setChecked", true, "state_0");
	webMI.trigger.fire("setChecked", false, "state_1");
	webMI.trigger.fire("setChecked", false, "state_2");
	webMI.trigger.fire("setChecked", false, "state_3");
	webMI.trigger.fire("setChecked", false, "state_5");
	webMI.trigger.fire("setChecked", false, "active");
}

function lockInputs(bool) {
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_0");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_1");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_2");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_3");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_4");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_5");
	webMI.trigger.fire("com.atvise.setActive", !bool, "weekdays_6");
	webMI.trigger.fire("com.atvise.setActive", !bool, "active");
	
	webMI.trigger.fire("com.atvise.setActive", !bool, "email_input");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_0");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_1");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_2");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_3");
	webMI.trigger.fire("com.atvise.setActive", !bool, "state_5");
	webMI.trigger.fire("com.atvise.setActive", !bool, "start_input");
	webMI.trigger.fire("com.atvise.setActive", !bool, "end_input");
}

function setValues() {
	var name = configuration.name.substring(configuration.name.lastIndexOf(".") + 1, configuration.name.length);
	if (typeof configuration.active == "undefined") configuration.active = true;
	if (typeof configuration.cycleTime != "object") configuration.cycleTime = {};
	if (typeof configuration.alarm != "object") configuration.alarm = {};
	if (configuration.prio.operator == "!=") configuration.prio.operator = "<>";
	webMI.trigger.fire("setValue", name, "configuration_input");
	webMI.trigger.fire("setValue", configuration.mail, "email_input");
	webMI.trigger.fire("setChecked", configuration.active == "true", "active");
	
	
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(0) > -1, "weekdays_0");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(1) > -1, "weekdays_1");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(2) > -1, "weekdays_2");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(3) > -1, "weekdays_3");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(4) > -1, "weekdays_4");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(5) > -1, "weekdays_5");
	webMI.trigger.fire("setChecked", configuration.cycleTime.daysOfWeek.indexOf(6) > -1, "weekdays_6");

	webMI.trigger.fire("setValue", msToTime(configuration.start), "start_input");
	webMI.trigger.fire("setValue", msToTime(configuration.end), "end_input");
	webMI.trigger.fire("setChecked", configuration.nodes.active == "true", "nodes_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.nodes.active, "address_picker");
	webMI.trigger.fire("setValue", configuration.nodes.address, "address_picker");
	webMI.trigger.fire("setChecked", configuration.group.active == "true", "group_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.group.active, "group_picker");
	webMI.trigger.fire("setValue", configuration.group.address, "group_picker");
	webMI.trigger.fire("setChecked", configuration.prio.active == "true", "prio_act");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_oper");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_input");
	webMI.trigger.fire("setSelectedItem", configuration.prio.operator, "prio_oper");
	webMI.trigger.fire("setValue", configuration.prio.value, "prio_input");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(0) > -1, "state_0");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(1) > -1, "state_1");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(2) > -1, "state_2");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(3) > -1, "state_3");
	webMI.trigger.fire("setChecked", configuration.alarm.state.indexOf(5) > -1, "state_5");
}
function setMessage(msg, error) {
	if (typeof msg == "undefined")
		msg = "";

	if (error)
		webMI.gfx.setFill("message", "#FF0000");
	else 
		webMI.gfx.setFill("message", "#00BB30");
	
	webMI.gfx.setText("message", msg);
}
function msToTime(duration) {
	var milliseconds = Math.floor((duration % 1000) / 100),
	minutes = Math.floor((duration / (1000 * 60)) % 60),
    hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
    hours = (hours < 10) ? "0" + hours : hours;
	minutes = (minutes < 10) ? "0" + minutes : minutes;
	return hours + ":" + minutes;
}
function timeToMs(time, e) {
	var timeParts = time.split(":");
	var ms;
	if(isNaN(timeParts[0])||isNaN(timeParts[1])){
		alert("T{Please enter the correct time format HH:mm}");
		return;
	}else if(timeParts[0]>23 || timeParts[1]>59){
		alert("T{Please enter the correct time format with a maximum time of 23:59}");
		return;
	}else{
		ms=(timeParts[0]==23 && timeParts[1]==59)?(+timeParts[0] * (60000 * 60)) + (+timeParts[1] * 60000) + 59999:(+timeParts[0] * (60000 * 60)) + (+timeParts[1] * 60000);
		(e=="from")?configuration.start=ms:configuration.end=ms;
	}
}
setMessage();
function handleNameChange() {
	if (locked)
		return;

	if (configuration.name[configuration.name.length-1] == ".") {
		setMessage("T{Error}: T{Name is empty or invalid.}", true);
		webMI.trigger.fire("com.atvise.setActive", false, "save_button");
		return;
	}

	if (webMI.getAccessControlSupport() && accessControlManager) {
		var config = baseDir + "." + configuration.name;
		setMessage();
		
		if (isNew) {
			var path = config.substring(0, config.lastIndexOf("."));
			accessControlManager.getRights([config, path], (response) => {
				var active = true;
				if (!response.result[1].rights.engineer) {
					setMessage("T{Error}: T{Group folder doesn't exist or permission is missing.}", true);
					active = false;
				}
				
				if (response.result[0].rights.engineer) {
					setMessage("T{Error}: T{Configuration already exist.}", true);
					active = false;
				}

				lockInputs(!active);
				webMI.trigger.fire("com.atvise.setActive", active, "save_button");
			});
		} else {
			accessControlManager.getRights(config, (response) => {
				var active = true;
				if (!response.result[0].rights.write) {
					setMessage("T{Error}: T{No permission to write configuration node.}", true);
					active = false;
				}

				lockInputs(!active);
				webMI.trigger.fire("com.atvise.setActive", active, "save_button");
			});	
		}
	}
}
function handleWeekydays(weekday, active) {
	var active = active == "true" ? true : false;
	
	if (typeof configuration.cycleTime != "object")
		return;
	
	if (typeof configuration.cycleTime.daysOfWeek == "undefined")
		configuration.cycleTime.daysOfWeek = [];

	var index = configuration.cycleTime.daysOfWeek.indexOf(weekday);

	if (active && index == -1) {
		configuration.cycleTime.daysOfWeek.push(weekday);
	} else if (!active && index > -1) {
		configuration.cycleTime.daysOfWeek.splice(index, 1)
	}
	
	configuration.cycleTime.daysOfWeek.sort();
}


function handleAlarmStates(state, active) {
	var active = active == "true" ? true : false;
	
	if (typeof configuration.alarm != "object")
		return;
	
	if (typeof configuration.alarm.state == "undefined")
		configuration.alarm.state = [];

	var index = configuration.alarm.state.indexOf(state);

	if (active && index == -1) {
		configuration.alarm.state.push(state);
	} else if (!active && index > -1) {
		configuration.alarm.state.splice(index, 1)
	}
	
	configuration.alarm.state.sort();
}

/**
 * TRIGGERS
 */

webMI.trigger.connect("valuechanged", function (e) {
	e.value = webMI.secureString(e.value);
	if (e.value.indexOf(".") > -1) {
		setMessage("T{Error}: T{Name is empty or invalid.}", true);
		webMI.trigger.fire("com.atvise.setActive", false, "save_button");
		return;
	}

	var group = configuration.name.substring(0, configuration.name.lastIndexOf("."));
	if (group)
		configuration.name = group + "." + e.value;
	else
		configuration.name = e.value;

	handleNameChange();
},"configuration_input");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(0, e.value);
},"weekdays_0");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(1, e.value);
},"weekdays_1");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(2, e.value);
},"weekdays_2");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(3, e.value);
},"weekdays_3");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(4, e.value);
},"weekdays_4");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(5, e.value);
},"weekdays_5");

webMI.trigger.connect("valuechanged", function (e) {
	handleWeekydays(6, e.value);
},"weekdays_6");


webMI.trigger.connect("valuechanged", function (e) {
	timeToMs(e.value,"from");
},"start_input");

webMI.trigger.connect("valuechanged", function (e) {
	timeToMs(e.value,"to");
},"end_input");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.active = e.value;
},"active");

webMI.trigger.connect("valuechanged", function (e) {
	var mails = e.value;
	configuration.mail = mails.split(',');
},"email_input");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.nodes.active = e.value;
	webMI.trigger.fire("com.atvise.setActive", configuration.nodes.active, "address_picker");
},"nodes_act");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.nodes.address = e.value;
},"address_picker");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.group.active = e.value;
	webMI.trigger.fire("com.atvise.setActive", configuration.group.active, "group_picker");
},"group_act");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.group.address = e.value;
},"group_picker");

webMI.trigger.connect("valuechanged", function (e) {
	configuration.prio.active = e.value;
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_oper");
	webMI.trigger.fire("com.atvise.setActive", configuration.prio.active, "prio_input");
},"prio_act");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.prio.operator = e.value;
},"prio_oper");
webMI.trigger.connect("valuechanged", function (e) {
	configuration.prio.value = e.value;
},"prio_input");



webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(0, e.value);
},"state_0");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(1, e.value);
},"state_1");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(2, e.value);
},"state_2");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(3, e.value);
},"state_3");
webMI.trigger.connect("valuechanged", function (e) {
	handleAlarmStates(5, e.value);
},"state_5");


webMI.trigger.connect("clicked", function(e) {
	webMI.trigger.fire("com.atvise.setActive", false, "save_button");	
	setMessage();

	webMI.data.call("MailWriteConfiguration", {configuration: JSON.stringify(configuration)}, function(e) {
		if (e.error) {
			if (e.errorstring)
				setMessage("T{Error}: " + e.errorstring, true);
			else
				setMessage("T{Error}: T{Unknown error}", true);
		} else {
			setMessage("T{Configuration saved.}");
			webMI.trigger.fire("com.atvise.MailManager.refreshList");
			webMI.display.closeWindow();
		}
		
		webMI.trigger.fire("com.atvise.setActive", true, "save_button");
	});
}, "save_button");

webMI.trigger.connect("clicked", function (e) {
	webMI.display.closeWindow();	
},"cancel_button");
]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailManager" BrowseName="1:MailManager" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailManager</DisplayName>
		<Description Locale="en">MailManager</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.DisplayScript</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <help/>
  </metadata>
  <code><![CDATA[/**
 * Code for the Mail manager object displays
 * ----------------------------------------------------------
 * The Mail manager list all configurations and can modifiy them.
 *
 */

/**
 * DECLARATION SECTION
 */

var webMIQueryProperties = {};
var tableID = (webMIQueryProperties.tableID = webMI.query["tableID"]);
var priority = (webMIQueryProperties.priority = parseFloat(
	webMI.query["priority"] != undefined ? webMI.query["priority"] : 0
));
var rightWrite = (webMIQueryProperties.rightWrite = webMI.query["rightWrite"]);
var rightExport = (webMIQueryProperties.rightExport = webMI.query["rightExport"]);
var rightGenerate = (webMIQueryProperties.rightGenerate = webMI.query["rightGenerate"]);
var edit_display = (webMIQueryProperties.edit_display = webMI.query["edit_display"]);
var header_height = (webMIQueryProperties.header_height = parseInt(webMI.query["header_height"]));
var row_height = (webMIQueryProperties.row_height = parseInt(webMI.query["row_height"]));
var font_family = (webMIQueryProperties.font_family = webMI.query["font_family"]);
var header_font_size = (webMIQueryProperties.header_font_size = webMI.query["header_font_size"]);
var detail_font_size = (webMIQueryProperties.detail_font_size = webMI.query["detail_font_size"]);
var footer_font_size = (webMIQueryProperties.footer_font_size = webMI.query["footer_font_size"]);
var row_font_size = (webMIQueryProperties.row_font_size = webMI.query["row_font_size"]);
var theme_class = (webMIQueryProperties.theme_class = webMI.query["theme_class"]);
var paging = (webMIQueryProperties.paging = webMI.query["paging"]);
var filterBar = (webMIQueryProperties.filterBar = webMI.query["filterBar"]);
var filterRegExp = (webMIQueryProperties.filterRegExp = webMI.query["filterRegExp"]);
var filterStar = (webMIQueryProperties.filterRegExp = webMI.query["filterStar"]);
var filterCaseSensitive = (webMIQueryProperties.filterCaseSensitive = webMI.query["filterCaseSensitive"]);
var filterMinInputLength = (webMIQueryProperties.filterMinInputLength = webMI.query["filterMinInputLength"]);
var linebreak = (webMIQueryProperties.linebreak = webMI.query["linebreak"]);
var columnReorder = (webMIQueryProperties.columnReorder = webMI.query["columnReorder"]);
var showMenu = (webMIQueryProperties.showMenu = webMI.query["showMenu"]);
var showMenuCustomTitle = (webMIQueryProperties.showMenuCustomTitle = webMI.query["showMenuCustomTitle"]);
var showPickerMenuTitle = (webMIQueryProperties.showPickerMenuTitle = webMI.query["showPickerMenuTitle"]);
var showPickerMenu = (webMIQueryProperties.showPickerMenu = webMI.query["showPickerMenu"]);
var menuWidth = (webMIQueryProperties.menuWidth = webMI.query["menuWidth"]);
var menuHeight = (webMIQueryProperties.menuHeight = webMI.query["menuHeight"]);
var multicellselect = (webMIQueryProperties.multicellselect = webMI.query["multicellselect"]);
var globalFontConfig = (webMIQueryProperties.globalFontConfig = webMI.query["globalFontConfig"]);
var globalColorConfig = (webMIQueryProperties.globalColorConfig = webMI.query["globalColorConfig"]);
var globalBorderColor = (webMIQueryProperties.globalBorderColor = webMI.query["globalBorderColor"]);
var globalFillColor = (webMIQueryProperties.globalFillColor = webMI.query["globalFillColor"]);
var globalFontColor = (webMIQueryProperties.globalFontColor = webMI.query["globalFontColor"]);
var globalSymbolColor = (webMIQueryProperties.globalSymbolColor = webMI.query["globalSymbolColor"]);

var baseDir = "AGENT.OBJECTS.ATVISE.MailManagement";
var config_rights = {};
var node_rights = [];
var nodes = [
			"SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailReadConfiguration",
			"SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailWriteConfiguration",
			"SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.AddNode",
			"SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.CheckNodeExists",
			"SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.SetNodeValue",
			baseDir,
			baseDir + ".sendMailLog",
			baseDir + ".sendMail"
		];
 
var enableConfigWrite = rightWrite == "";
var enableExport = rightExport == "";
var enableReportGenerate = rightGenerate == "";
var topWindow = parent;

var Tables, containerID, mainTableColumnsObject, mainTableColumnsFields, mainTableColumnTitlesDic;
var slickStyler;
var slickConfigurator;
var tableLoaded = false;
var tableLayer, tableLayerWidth;
var currentScaleFactor = 1;
var screenCTM = webMI.gfx.getScreenCTM(true);
var heightTransformationFactor = screenCTM.d;
var acknConfHeaderSpan1, acknConfCommentHeaderSpan1;
var columnSettings;
var deviceScaling = webMI.query["deviceScaling"] == "true";
var maxColumnPriority;
var fontMultiplicator;

var contextMenuStyle = {};
var fontSizeToTransformationFactor = 0.065;
var offsetButtons1 = 0;
var offsetButtons2 = 0;
var columnDefinitions;
var hasBrowseNodes = webMI.getMethodSupport().indexOf("BrowseNodes") !== -1;

var dataController; 
var tableController;

var columns = [
	{alignmentMain:"", columnName:"T{Edit}", field: "edit", filter: "false", fontSizeDetail: "", fontSizeMain: "", orderMain: "1", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "50"},
	{alignmentMain:"", columnName:"T{Name}", field: "name", filter: "true", fontSizeDetail: "", fontSizeMain: "", orderMain: "2", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "100"},
	{alignmentMain:"", columnName:"T{Active}", field: "active",	filter: "false", fontSizeDetail: "", fontSizeMain: "", orderMain: "4", priority: "4", sortable: "true", textoption: "", type: "bool", visibleMain: "true", widthMain: "50"},
	{alignmentMain:"", columnName:"T{Weekday(s)}", field: "weekdays", filter: "true", fontSizeDetail: "", fontSizeMain: "", orderMain: "5", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "250"},
	{alignmentMain:"", columnName:"T{Time}", field: "time", filter: "true", fontSizeDetail: "", fontSizeMain: "",  orderMain: "7", priority: "4", sortable: "true", textoption: "", type: "time", visibleMain: "true", widthMain: "250"},
	{alignmentMain:"", columnName:"T{Priority}", field: "priority", filter: "true", fontSizeDetail: "", fontSizeMain: "", orderMain: "8", priority: "4", sortable: "true", textoption: "", type: "string", visibleMain: "true", widthMain: "50"}
	
	];
var countColumns = Object.keys(columns).length;

/**
 * ACCESS CONTROL SETTINGS
 */
var accessControlManager = false;

function getNodeRights(callback) {
	accessControlManager.getRights(nodes, (response) => {
		node_rights = response.result;
		
		if(callback)
			callback();
	});
}

if (webMI.getAccessControlSupport()) {
	accessControlManager = webMI.callExtension("SYSTEM.LIBRARY.ATVISE.QUICKDYNAMICS.Access Control Manager");
	getNodeRights();
}


/**
 * RUNTIME SECTION
 */

if (deviceScaling) {
	maxColumnPriority = webMI.getClientInfo()
		? webMI.getClientInfo().isDesktop
			? webMI.query["maxColumnPriority"]
			: webMI.getClientInfo().isTablet
				? 2
				: 1
		: webMI.query["maxColumnPriority"];
	fontMultiplicator = webMI.getClientInfo()
		? webMI.getClientInfo().deviceScaling.table.fontsize
			? webMI.getClientInfo().deviceScaling.table.fontsize
			: 1
		: 1;
	header_font_size = header_font_size * fontMultiplicator;
	row_font_size = row_font_size * fontMultiplicator;
	detail_font_size = detail_font_size * fontMultiplicator;
	footer_font_size = footer_font_size * fontMultiplicator;
}

columnDefinitions = getColumnDefinitions(columns);

contextMenuStyle = {
	maxRows: 10,
	fontFamily: "Arial",
	fontSize: row_font_size,
	fontFill: "#575757",
	width: 17 * row_font_size,
	fill: "#ffffff",
	stroke: "#575757",
	strokeWidth: 1,
	hoverFill: "#e5e5e5",
	closeTime: 0,
	zIndex: 100,
	showType: "right"
};

offsetButtons1 = 5;
offsetButtons2 = 0;
offsetButtons3 = 2;

webMI.addOnload(function () {
	if (webMI.getConfig("frame.scaletype") != "native") currentScaleFactor = webMI.frame.getCurrentScaleFactor();

	tableLayer = document.getElementById(tableID).parentElement.parentElement;

	tableLayerWidth = parseInt(tableLayer.style.width.replace("px", ""));
	tablePanelHeight = parseInt(webMI.gfx.getHeight("table_panel"));

	var footerHeight = parseInt(webMI.gfx.getHeight("table_footer"));

	if (rightWrite == undefined || rightWrite == "") {
	} else {
		if (rightWrite.search(/SYSTEM\.SECURITY\.RIGHTS\./) != -1)
			rightWrite = rightWrite.substring(23, rightWrite.length); //remove "prefix" SYSTEM.SECURITY.RIGHTS.

		webMI.addEvent(webMI.data, "clientvariableschange", function (e) {
			enableWriting = webMI.hasRight(rightWrite);

			if (enableWriting) {
				activeButton.icon.style.cursor = "pointer";
				inactiveButton.icon.style.cursor = "pointer";
			} else {
				activeButton.icon.style.cursor = "default";
				inactiveButton.icon.style.cursor = "default";
			}

			var activeButtonElements = parent.document.getElementsByClassName("activeButton");
			for (var i = 0; i < activeButtonElements.length; ++i) {
				if (enableWriting) {
					activeButtonElements[i].style.cursor = "pointer";
				} else { 
					activeButtonElements[i].style.cursor = "default";
				}
			}
			var inactiveElements = parent.document.getElementsByClassName("inactiveButton");
			for (var i = 0; i < inactiveButtonElements.length; ++i) {
				if (enableWriting) {
					inactiveButtonElements[i].style.cursor = "pointer";
				} else {
					inactiveButtonElements[i].style.cursor = "default";
				}
			}


			if (tableController && tableController.grid) tableController.grid.resizeCanvas();
		});
	}

	if (rightExport == "") {
	} else {
		if (rightExport.search(/SYSTEM\.SECURITY\.RIGHTS\./) != -1)
			rightExport = rightExport.substring(23, rightExport.length); //remove "prefix" SYSTEM.SECURITY.RIGHTS.

		webMI.addEvent(webMI.data, "clientvariableschange", function (e) {
			enableExport = webMI.hasRight(rightExport);
			if (typeof tableController != "undefined") {
				if (!enableExport) tableController.hideMenuEntriesByGroup("csv-commands");
				else tableController.showMenuEntriesByGroup("csv-commands");
			}

			if (tableController && tableController.grid) tableController.grid.resizeCanvas();
		});
	}

	var wasOffline = false;
	webMI.addEvent(webMI.data, "serverstatechange", function (e) {
		var state = e.active["connection-status"].primary || e.active["connection-status"].secondary;
		if (!state) {
			wasOffline = true;
		} else if (wasOffline) {
			wasOffline = false;
			liveArray = [];
			initLiveArray();
		}
	});

	if (isNaN(priority)) priority = 0;

	webMI.table.loadResources(function () {
		/* special for ie11 */
		function iconInnerHTML(icon, iconClass, dimensions) {
			var newIcon = icon;
			newIcon.setAttribute("visibility", "visible");
			newIcon.setAttribute("viewbox", "0 0 " + icon.getAttribute("width") + " " + icon.getAttribute("height"));
			if (dimensions) {
				newIcon.setAttribute("width", dimensions.width);
				newIcon.setAttribute("height", dimensions.height);
			}
			for (var ic in iconClass) {
				webMI.rootWindow.jQuery(newIcon).addClass(iconClass[ic]);
			}
			return webMI.rootWindow.jQuery("<div>").append(webMI.rootWindow.jQuery(newIcon).clone()).html(); // webMI.rootWindow.jQuery(newIcon).outerHTML;
		}

		/**
		 * Declaration of some ICONS
		 * @type {HTMLElement | null}
		 */

		var iconSelected = initIcon(
			"iconSelected",
			"",
			((fontSizeToTransformationFactor * 12.5) / 16) * header_font_size * heightTransformationFactor,
			null,
			null,
			"selected"
		);
		iconSelected.span.innerHTML = iconSelected.icon.outerHTML;

		var iconBurger = initIcon(
			"iconBurger",
			"",
			fontSizeToTransformationFactor * header_font_size * heightTransformationFactor,
			null,
			null,
			"burger"
		);
		iconBurger.span.innerHTML = iconBurger.icon.outerHTML;

		/* Differentiation between standard and scaled header */
		var headerRowHeightFactor = (header_height ? header_height : 20) / 20;

		var iconMessage = iconInnerHTML(document.getElementById("iconMessage"), [], {
			width: 80 * headerRowHeightFactor,
			height: 20 * headerRowHeightFactor
		});

		/* Scaling correction for external event listener **/
		var tableElement = document.getElementById(tableID);
		var scaleType = webMI.getConfig("frame.scaletype");
		if (scaleType == "zoom") {
			webMI.gfx.setScaledEvents(
				tableElement.parentElement.parentElement,
				false,
				false,
				tableElement.parentElement
			);
		}

		containerID = document.getElementById(tableID).id;

		var config = {};
		config.mode = "once";
		config.columns = columnDefinitions.mainTableColumns;
		config.containerID = document.getElementById(tableID).id;
		config.dataRequestFunction = {};
		//config.bufferInterval = 25;
		//config.renderInterval = 100;
		config.rowFormatter = rowFormatter;

		/* get settings from query param */
		var settings = {};
		var heightMultiplicator = 1;
		if (deviceScaling) {
			heightMultiplicator = webMI.getClientInfo() ? webMI.getClientInfo().deviceScaling.table.rowheight : 1;
		}
	
		config.onClickCallback = function (e, clickinfo) {
			clickHandler(clickinfo);
		};

		settings.multiselect = true;
		settings.header_height = (header_height / currentScaleFactor) * heightMultiplicator * heightTransformationFactor;
		settings.row_height = (row_height / currentScaleFactor) * heightMultiplicator * heightTransformationFactor;
		settings.font_family = font_family;
		settings.header_text_size = (header_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.detail_text_size = (detail_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.footer_text_size = (footer_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.row_text_size = (row_font_size / currentScaleFactor) * heightTransformationFactor;
		settings.theme_class = theme_class;
		settings.paging = paging;
		settings.filterBar = filterBar;
		settings.filterRegExp = filterRegExp;
		settings.filterStar = filterStar;
		settings.filterCaseSensitive = filterCaseSensitive;
		settings.filterLength = filterMinInputLength;
		settings.filterConversion = {
			timestamp: ["datetime"]
		};
		settings.linebreak = linebreak;
		settings.columnReorder = columnReorder;
		settings.showMenu = showMenu;
		settings.showMenuCustomTitle = showMenuCustomTitle;
		settings.showPickerMenuTitle = showPickerMenuTitle;
		settings.showPickerMenu = showPickerMenu;
		settings.showMenuWidth = (menuWidth * row_font_size) / 12 / currentScaleFactor;
		settings.showMenuHeight = menuHeight / currentScaleFactor;
		settings.multicellselect = multicellselect;
		settings.icons = [];
		settings.icons.selector = typeof iconSelected == "undefined" ? false : iconSelected.icon.outerHTML;
		settings.icons.burger = typeof iconBurger == "undefined" ? false : iconBurger.span.outerHTML;
		settings.notification = document.getElementById("notification_area").getAttribute("id");
		var translation = {
			title_export: "T{Export}",
			title_command: "T{Filter}",
			title_picker: "T{Columns}",
			export_csv: "T{All rows with displayed columns}",
			export_csv_wh: "T{All rows with all columns}",
			export_csv_m: "T{Marked rows with displayed columns}",
			export_csv_mwh: "T{Marked rows with all columns}",
			export_option_timestamp: "T{Export time as timestamp}",
			export_option_milliseconds: "T{Precision in milliseconds}",
			filter_show_hide: "T{Show or hide filter}",
			filter_clear: "T{Reset filter}",
			sort_clear: "T{Reset sorting}",
			tooltip_details: "T{Action}",
			tooltip_marks: "T{Set/Cancel marks}"
		};
		settings.translation = translation;

		/* add globals to settings */
		for (var key in globalFontConfig) {
			var value = globalFontConfig[key];
			if (typeof value.size != "undefined") settings[key] = value.size;
		}
		for (var key in globalColorConfig) {
			var value = globalColorConfig[key];
			if (typeof value.color != "undefined") settings[key] = value.color;
		}

		/* get custom styling */
		var styling = webMI.table.request(tableID, "styling");
		for (var key in styling) {
			var value = styling[key];
			if (typeof value != "undefined") settings[key] = value;
		}

		/* global fallback colors */
		var fallbacks = {};
		fallbacks.globalBorderColor = globalBorderColor;
		fallbacks.globalFillColor = globalFillColor;
		fallbacks.globalFontColor = globalFontColor;
		fallbacks.globalSymbolColor = globalSymbolColor;

		slickConfigurator = new webMI.rootWindow.SlickConfigurator(config, settings, fallbacks);
		var tableConfig = slickConfigurator.getConfig();

		webMI.table.register(tableID, "ControllerConfig", tableConfig);
		webMI.table.setReady(tableID, "ControllerConfig");

		webMI.table.waitReady(tableID, "ControllerConfig", function () {
			dataController = new webMI.rootWindow.DataController();
			tableController = new webMI.rootWindow.SlickController(dataController, tableConfig);

			tableController.webMIQuery = webMIQueryProperties;

			webMI.table.register(tableID, "controller", tableController);

			/**
			 * Add message icon to notification_area and configure listener
			 */
			webMI.rootWindow
				.jQuery("#" + settings.notification)
				.append(webMI.rootWindow.jQuery(iconMessage).clone())
				.html();
			webMI.addEvent("notification_area", "click", function (e) {
				tableController.notification.handleEvent(e, null);
			});

			/**
			 * Hide show notification button
			 */
			var panel = [];
			panel.element = document.getElementById(tableID); // config.containerID);
			panel.width = panel.element.offsetWidth;

			var noteButton = [];
			noteButton.element = document.getElementById("id_notification");

			var topDefault = parseInt(noteButton.element.style.top.replace("px", ""), 10);
			topDefault = topDefault - 1;
			noteButton.top = topDefault + "px";
			noteButton.icon = [];
			noteButton.icon.id = document.getElementById("iconMessage").id;
			noteButton.icon.container = noteButton.element.querySelector("#" + noteButton.icon.id);
			noteButton.icon.width = noteButton.icon.container.width.baseVal.value;
			noteButton.icon.height = noteButton.icon.container.height.baseVal.value;

			noteButton.wrapper = [];
			noteButton.wrapper.element = noteButton.icon.container.parentElement.parentElement.parentElement;
			noteButton.wrapper.left = parseInt(noteButton.wrapper.element.style.left.replace("px", ""), 10);
			noteButton.wrapper.element.style.left = noteButton.wrapper.left + 80 - 80 * headerRowHeightFactor + "px";
			noteButton.wrapper.element.style.width = 80 * headerRowHeightFactor + "px";
			noteButton.wrapper.element.style.height = 20 * headerRowHeightFactor + "px";

			noteButton.element.style.width = 80 * headerRowHeightFactor + "px";
			noteButton.element.style.height = 20 * headerRowHeightFactor + "px";

			tableController.hideNotificatonButton = function () {
				noteButton.element.style.top = "-100px";
				noteButton.element.style.display = "none";
			};
			tableController.showNotificatonButton = function () {
				noteButton.element.style.top = noteButton.top;
				noteButton.element.style.display = "block";

				/* correction for parent */
				var header = [];
				header.container = [];
				header.container.content = document.getElementById(tableID);
				header.container.top = parseInt(
					header.container.content.parentElement.parentElement.style.top.replace("px", ""),
					10
				);
				header.container.left = parseInt(
					header.container.content.parentElement.parentElement.style.left.replace("px", ""),
					10
				);
				header.container.height = parseInt(
					header.container.content.parentElement.parentElement.style.height.replace("px", ""),
					10
				);

				header.column = [];
				header.column.content = header.container.content.getElementsByClassName("slick-header-columns")[0];
				header.column.width = parseInt(header.column.content.style.width.replace("px", ""), 10);
				header.column.left = parseInt(header.column.content.style.left.replace("px", ""), 10);
				header.column.height = header.column.content.offsetHeight;
				header.offset = header.container.left + header.column.left + header.column.width;

				setTimeout(function () {
					if (webMI.getConfig("frame.scaletype") === "zoom") {
						var buttonElement = noteButton.element;
						var origHeight = 20 * headerRowHeightFactor;
						var origWidth = 80 * headerRowHeightFactor;
						var transHeight = buttonElement.getClientRects()[0].height;
						var transWidth = buttonElement.getClientRects()[0].width;

						var heightFactor = transHeight / origHeight;
						var widthFactor = transWidth / origWidth;

						var scaleString = "scale(" + widthFactor + "," + heightFactor + ")";

						buttonElement.style.transformOrigin = "0 0";
						buttonElement.style.transform = scaleString;
						buttonElement.style.width = origWidth + "px";
						buttonElement.style.height = origHeight + "px";
						buttonElement.style.float = null;

						/* [AT-D-12385] wrapper */
						buttonElement.children[0].children[0].style.float = null;
					} else if (webMI.getConfig("frame.scaletype") === "transform") {
						var filters = document.getElementById("filters_bg");
						var container = filters.parentElement.parentElement;
						var buttonElement = noteButton.element;
						var noteArea = buttonElement.children[0].children[0];
						var iconMessage = noteArea.children[0];
						var widthFactor = container.getAttribute("transform") ? webMI.gfx.getScreenCTM().a : 1;
						var heightFactor = container.getAttribute("transform") ? webMI.gfx.getScreenCTM().d : 1;

						noteArea.style.width = 0;
						noteArea.style.height = 0;
						noteArea.style.float = null;

						var scaleString = "scale(" + widthFactor + "," + heightFactor + ")";

						iconMessage.style.transform = scaleString;
						iconMessage.style.transformOrigin = "0 0";
						iconMessage.style.width = origWidth + "px";
						iconMessage.style.height = origHeight + "px";
					}
				});
			};

			tableController.hideNotificatonButton();

			/**
			 * init table
			 */
			tableController.init(function () {
				/* apply custom css to all components */
				slickStyler = new webMI.rootWindow.SlickStyler();
				slickStyler.generate(tableConfig.containerID, tableConfig.style);

				webMI.table.setReady(tableID, "controller");

				if (!tableController || !tableController.grid) return;

				var cols = tableController.grid.getColumns();

				if (!enableExport) tableController.hideMenuEntriesByGroup("csv-commands");
				tableController.grid.resizeCanvas();
				tableLoaded = true;
				
				getConfigurations();
			});
		});
	});
});

function clickHandler(clickinfo) {
	var clickColumns = ["active", "edit"];

	if (clickColumns.indexOf(clickinfo.column.id) < 0) {
		return;
	}

	/* prevent double click events of fast changes */
	if (typeof clicklock != "undefined" && clicklock) return;
	else clicklock = true;

	setTimeout(function preventDoubleClick() {
		clicklock = false;
	}, 250);
	
	var configuration = clickinfo.item.sortId;

	/* handle active / inactive state click */
	if (clickinfo.column.id == "active") {
		/*		
		if (clickinfo.item.advanced || (clickinfo.item.rights && !clickinfo.item.rights.write))
			return;
		*/
		webMI.data.call("MailReadConfiguration", {configuration: configuration}, function(cfg) {
			//toggle state
			cfg.active = (cfg.active === "true") ? "false" : "true";

			
			if (cfg.template) cfg.template = cfg.template.replaceAll("\\","\\\\");
			if (cfg.xlsxReport) cfg.xlsxReport = cfg.xlsxReport.replaceAll("\\","\\\\");
			if (cfg.pdfReport) cfg.pdfReport = cfg.pdfReport.replaceAll("\\","\\\\");
			if (cfg.htmlReport) cfg.htmlReport = cfg.htmlReport.replaceAll("\\","\\\\");

			//force inactive state without config check in config handler
			if (!cfg.active)
				cfg.force = true;

			webMI.data.call("MailWriteConfiguration", {configuration: JSON.stringify(cfg)}, function(e) {
				if (e.error) {
					webMI.display.openWindow({
						display: "SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.message_dialog_small",
						extern: false,
						width: 400,
						height: 140 + 20,
						menubar: false,
						modal: true,
						movable: true,
						resizable: false,
						scrollbars: false,
						status: false,
						title: "T{Warning}",
						toolbar: false,
						query: {
							btn1: "T{OK}",
							message: e.errorstring ? e.errorstring : "T{Unknown error occured}.",
							headline: "T{Error}",
						}
					});
				} else {
					getConfigurations();
				}
			});
		})
		return;
	}

	/* handle settings click */
	if (clickinfo.column.id == "edit") {
		/*		
		if (clickinfo.item.advanced || (clickinfo.item.rights && !clickinfo.item.rights.write))
			return;
		*/
		webMI.display.openWindow({
			display: edit_display,
			extern: false,
			height: 700 + 20,
			menubar: false,
			modal: true,
			movable: true,
			resizable: true,
			scrollbars: false,
			status: false,
			title: "T{Edit}",
			toolbar: false,
			width: 700,
			query: { configuration: configuration }
		});
		return;
	}
}

//cleanup subscriptions
webMI.addOnunload(function () {
	try {
		webMI.table.register(tableID, "controller", null, true);
	} catch (ex) {
		/* already unregistered */
	}

	/* remove functions */
	if (tableController) {
		tableController.hideNotificatonButton();
		tableController.showNotificatonButton = undefined;
		tableController.hideNotificatonButton = undefined;
	}

	slickConfigurator = undefined;

	try {
		slickStyler.unload();
		slickStyler = undefined;
	} catch (ex) {
		/* already unset */
	}

	try {
		tableController.destroy();
		tableController = undefined;
	} catch (ex) {
		/* already unset */
	}
});

/**
 * FUNCTION SECTION
 */


/**
 * @async
 * @param {string|Array<string>} methodNames webMI-method name to check execution right for
 * @returns {Promise<boolean>}
 */
async function hasExecutionRightsFor(methodNames) {
	if (typeof methodNames === "string") {
		methodNames = [methodNames];
	}

	let methodAddresses = methodNames.map((methodNames) => {
		return `SYSTEM.LIBRARY.ATVISE.WEBMIMETHODS.${methodNames}`;
	});

	let getRightsParam2 = methodNames.map(() => {
		return "execute";
	});

	return new Promise((resolve) => {
		accessControlManager.getRights(methodAddresses, getRightsParam2, (response) => {
			if (
				response.result
					.map((r) => {
						return r.value;
					})
					.includes(false)
			) {
				resolve(false);
			} else {
				resolve(true);
			}
		});
	});
}


function initIcon(domId, title, transform, right, iconClass, iconType) {
	var icon = document.getElementById(domId);
	if (!icon) return;

	var iconClickarea = document.getElementById(domId + "_clickarea");
	if (iconClickarea && iconClass) iconClickarea.setAttribute("class", iconClass);
	var transformFactor = transform / currentScaleFactor;

	var originalButtonSize = parseInt(icon.height.baseVal.value);
	var transformedButtonSize = transformFactor * originalButtonSize;
	var buttonOffsetX = 0;
	var buttonOffsetY = 0;

	var iconGroup = document.getElementById(domId + "_group");
	if (iconGroup) {
		iconGroup.setAttribute(
			"transform",
			"matrix(" + transformFactor + ",0,0," + transformFactor + "," + buttonOffsetX + "," + buttonOffsetY + ")"
		);
	}
	icon.style.height = originalButtonSize * transformFactor + "px";
	icon.style.width = originalButtonSize * transformFactor + "px";

	if (right) {
		icon.style.cursor = "pointer";
	}
	icon.setAttribute("visibility", "visible");

	var span = parent.document.createElement("span");
	span.setAttribute("title", title);
	span.style.display = "grid";
	return {icon: icon, group: iconGroup, clickarea: iconClickarea, span: span};
}


function formatString(obj, attribute) {
	if (obj[attribute]) {
		let text = typeof obj[attribute] === "string" ? obj[attribute] : obj[attribute]["T{}"];
		text = webMI.escapeHTML(text);

		try {
			return webMI.sprintf(text, obj, "T{}");
		} catch (err) {
			console.error(attribute + ": " + text + "\n error: " + err);
		}
	}
	return "";
}



function getColumnDefinitions(columnSettings) {
	var mainTableColumns = [];
	var detailTableColumns = [];

	for (var prop in columnSettings) {
		// skip loop if the property is from prototype
		if (!columnSettings.hasOwnProperty(prop)) continue;

		var colParameters = columnSettings[prop];

		var cPrio = parseInt(colParameters.priority, 10);
		var mPrio = 10;

		//main table columns
		var column = {
			id: colParameters.field,
			name: colParameters.columnName,
			field: colParameters.field,
			alignment: colParameters.alignment,
			filter: colParameters.filter == "true",
			minWidth: 0,
			order: parseInt(colParameters.orderMain),
			sortable: colParameters.sortable == "true",
			textoption: colParameters.textoption,
			type: trimAndSplit(colParameters.type),
			visible: colParameters.visibleMain == "true" && cPrio <= mPrio
		};


		if (parseInt(colParameters.widthMain) > 0) {
			column.width = parseInt(colParameters.widthMain);
		}

		if (column.field == "lastCycle") {
			column.formatter = TimeStampFormatter;
		} else if (column.field == "active") {
			column.className = "dt-body-center";
			column.formatter = ActivationFormatter;
			column.type = "button";
		} else if (column.field == "cycleOffset") {
			column.formatter = CycleoffsetFormatter;
		} else if (column.field == "edit") {
			column.className = "dt-body-center";
			column.formatter = SettingsFormatter;
			column.type = "button";
		} else if (column.field == "actions") {
			column.className = "dt-body-center";
			column.sortable = false;
		} else if (column.type == "bool" && column.field != "value") {
			// !!! TAKE CARE! If some other boolean field, which is handled in the if clauses before it will not use this formatter
			column.formatter = BooleanFormatter;
		}else if (column.field == "weekdays" || column.field == "time" || column.field == "priority" || column.field == "name"){
			column.formatter = stringFormatter;		
		}

		mainTableColumns.push(column);


	}

	mainTableColumns.sort(columnCompareFunction);
	return {mainTableColumns: mainTableColumns};
}

//Custom compare function for Array.sort
function columnCompareFunction(a, b) {
	//The table colums are sorted by "order" and, if two ore more colums have the same "order", by "name".
	if (a.order < b.order) return -1;
	if (a.order > b.order) return 1;
	//if a.order == b.order sort by name:
	if (a.name.toUpperCase() < b.name.toUpperCase()) return -1;
	if (a.name.toUpperCase() > b.name.toUpperCase()) return 1;
	//if a.name.toUpperCase() == b.name.toUpperCase() return 0:
	return 0;
}

function trimAndSplit(input) {
	input = input.split(",");
	for (var i in input) input[i] = input[i].trim();
	return input;
}

/**
 * Formatters
 */
function SettingsFormatter(row, cell, value, columnDef, dataContext) {
	/*	
	if (dataContext.advanced || !dataContext.rights.write || (node_rights && !node_rights[1].rights.execute)) {
		return '<span style="width: 100%; text-align: center">-</span>';
	} else {
		return '<span style="width: 100%; text-align: center"><i class="fas fa-edit"></i></span>';
	}
	*/
	return '<span style="width: 100%; text-align: center"><i class="fas fa-edit"></i></span>';
}

function TimeStampFormatter(row, cell, value, columnDef, dataContext) {
	if (value) {
		var datetime = new Date(value);
			
		if (datetime != 'Invalid Date')
			return _makeConversions(["datetime","s"], datetime.getTime());
	}
	
	return value;
}

function ActivationFormatter(row, cell, value, columnDef, dataContext) {
	/*
	if (dataContext.advanced || !dataContext.rights.write|| (node_rights && !node_rights[1].rights.execute)) {
		return '<span style="width: 100%; text-align: center">' + (value ? 'T{true}' : 'T{false}') + '</span>';
	} else {
		return value
			? '<span style="width: 100%; text-align: center;"><i class="fas fa-check-square"></i></span>'
			: '<span style="width: 100%; text-align: center;"><i class="far fa-square"></i></span>';
	}
	*/
	return value ? '<span style="width: 100%; text-align: center;"><i class="fas fa-check-square"></i></span>' : '<span style="width: 100%; text-align: center;"><i class="far fa-square"></i></span>';
}

function CycleoffsetFormatter(row, cell, value, columnDef, dataContext) {
	if (typeof value == "undefined" || value === "")
		value = "-";

	return '<span style="width: 100%; text-align: center">' + value + " T{min.}" + '</span>';
}

function BooleanFormatter(row, cell, value, columnDef, dataContext) {
	if (value == true) return "T{true}";
	else if (value == false) return "T{false}";
	else return value;
}
function stringFormatter(row, cell, value, columnDef, dataContext) {
	return '<span style="width: 100%; text-align: center">' + value + '</span>';
}
function GenerateFormatter(row, cell, value, columnDef, dataContext) {
	if (value == false) return "";
	return (html =
		'<span style="width: 100%; text-align: center"><i class="fas fa-file-export"></i></span>');
}

// add item to the list
function addItem(item) {
	var name = item.name;
	var folder = item.name.split(".");
	
	item.sortId = name;
	item.name = folder[folder.length - 1];
	item.group = "";
	if (folder.length > 1)
		item.group = name.replace("." + item.name, "");

	tableController.addData({result: [item]});
}

// get data
var inProgress = null;
function getConfigurations() {
	if(webMI.getAccessControlSupport() && node_rights.length == 0) {
		setTimeout(function() { getConfigurations() }, 100);
		return;	
	}
		
	if(inProgress != null)
		return;

	inProgress = true;
	tableController.clearData();
	
	setTimeout(function() { 
		getStatus(function(status) {
			webMI.data.call("MailReadConfiguration", {}, function(e) {
				accessControlManager.clearRightsStorage();

				var configurations = e;
				var noderigths = [];
				
				if (typeof e.error != "undefined") {
					var errorstring = e.errorstring ? e.error + " (" + e.errorstring + ")" : e.error;
					errorstring = e.address ? errorstring + " T{for node} " + e.address : errorstring;
					tableController.setMessage("T{Error}: " + errorstring);
				}
				
				function handleItem(item) {
					item.lastCycle = "";
					if (status && status.log && status.log[item.name]) {
						if(status.log[item.name].result && status.log[item.name].result.success != true) {
							item.lastCycle = "T{Error}: " + status.log[item.name].result.errorstring;
						} else if (status.log[item.name].lastCycle) {
							item.lastCycle = new Date(status.log[item.name].lastCycle);
							item.lastCycle = item.lastCycle.getTime();
						} else {
							item.lastCycle = "-";
						}
					} else if (status == false) {
						item.lastCycle = "T{No permission}";
					} else {
						item.lastCycle = "-";
					}
					
					try {
						var cycleTime = item.cycleTime;
						var cycletext = "";
						if (cycleTime.daysOfWeek.length > 0) {
							if(cycletext.length > 0)
								cycletext += "; ";
							var weekdays = ""
							if (cycleTime.daysOfWeek.indexOf(1) > -1) 
								weekdays += "T{Mon.} ";
							if (cycleTime.daysOfWeek.indexOf(2) > -1) 
								weekdays += "T{Tue.} ";
							if (cycleTime.daysOfWeek.indexOf(3) > -1) 
								weekdays += "T{Wed.} ";
							if (cycleTime.daysOfWeek.indexOf(4) > -1) 
								weekdays += "T{Thu.} ";
							if (cycleTime.daysOfWeek.indexOf(5) > -1) 
								weekdays += "T{Fri.} ";
							if (cycleTime.daysOfWeek.indexOf(6) > -1) 
								weekdays += "T{Sat.} ";
							if (cycleTime.daysOfWeek.indexOf(0) > -1 || cycleTime.daysOfWeek.indexOf(7) > -1) 
								weekdays += "T{Sun.} ";
							cycletext += weekdays;
						}
					} catch(ex) {
					}
					item.active = JSON.parse(item.active);
					item.weekdays = cycletext;
					item.time = timeFormat(item.start)+" - "+timeFormat(item.end);			
					item.priority = item.prio.value;
					addItem(item);
				}
				
				if(webMI.getAccessControlSupport() && accessControlManager) {
					for (var i = 0; i < configurations.length; i++) {
						noderigths.push(baseDir + "." + configurations[i].name);
					}
					
					if(noderigths.length > 0) {
						accessControlManager.getRights(noderigths, (response) => {
							for (var i = 0; i < configurations.length; i++) {
								var item = configurations[i];
								
								if (!item)
									continue;
								
								item.rights = response.result[i].rights;
								
								handleItem(item);
							} 
							setTimeout(function() { inProgress = null }, 250);
						});	
					} else {
						setTimeout(function() { inProgress = null }, 250);
					}		
				} else {
					for (var i = 0; i < configurations.length; i++) {
						var item = configurations[i];
						
						if (!item)
							continue;
						
						handleItem(item);
					}
					setTimeout(function() { inProgress = null }, 250);
				}
			});
		});
	}, 150);
}
function timeFormat(d){
	d = Number(d) / 1000;
	var h = Math.floor(d / 3600);
	var m = Math.floor(d % 3600 / 60);
	var s = Math.floor(d % 3600 % 60);
	//h = h > 0 ? h + 1 : h;
	var hDisplay = h >= 10 ? h + ":" : "0"+ h +":";
	var mDisplay = m >= 10 ? m : "0"+ m;
	return hDisplay + mDisplay; 
}
function getStatus(callback) {
	if(!webMI.getAccessControlSupport() || !accessControlManager) {
		callback(false);
	} else {
		getNodeRights(function() {
			if(!node_rights[6].rights.read) {
				callback(false);
			} else {
				webMI.data.read(baseDir + ".sendMailLog", function(e) {
					callback(JSON.parse(e.value));
				});
			}
		});
	}
}

/**
 * Internal conversation of datetime
 * @param format
 * @param value
 * @returns {*}
 * @private
 */
function _makeConversions(format, value, wrapIntoSlickDiv) {
	if (typeof wrapIntoSlickDiv == "undefined") {
		wrapIntoSlickDiv = true;
	}
	if (format[0] == "datetime") {
		if (value) {
			if (typeof value == "string" && value.indexOf("-") > -1)
			//ignore already formatted values
				return value;

			var date = new Date(parseInt(value, 10));
			value = webMI.sprintf(
				"%d-%02d-%02d %02d:%02d:%02d.%03d",
				date.getFullYear(),
				date.getMonth() + 1,
				date.getDate(),
				date.getHours(),
				date.getMinutes(),
				date.getSeconds(),
				date.getMilliseconds()
			);

			if (typeof format[1] != "undefined" && format[1] == "s") {
				value = value.substring(0, value.indexOf("."));
			}
		} else {
			value = "";
		}
	}
	return wrapIntoSlickDiv ? '<div class="slick-cell-item">' + value + "</div>" : value;
}

function rowFormatter(item, rowIndex) {
	if (item.rowStyle) {
		return [item.rowStyle];
	} else {
		return [];
	}
}


/**
 * EVENT SECTION
 */

webMI.addOnresize(function () {
	if (webMI.getConfig("frame.scaletype") != "native") return;
	tableController.grid.resizeCanvas();
});

/**
 * TRIGGER SECTION
 */

webMI.trigger.connect(
	"clicked",
	function (e) {
		if (tableLoaded) {
			getConfigurations();
		}
	},
	"button_refresh"
);

webMI.trigger.connect(
	"clicked",
	function (e) {
		webMI.display.openWindow({
			display: edit_display,
			extern: false,
			height: 700 + 20,
			menubar: false,
			modal: true,
			movable: true,
			resizable: true,
			scrollbars: false,
			status: false,
			title: "T{Add}",
			toolbar: false,
			width: 700,
			query: {}
		});
	},
	"button_new"
);


webMI.trigger.connect(
	"clicked",
	function (e) {
		if (!tableController)
			return;
			
		var tableData = tableController.getData();
		var deleteItems = [];
		var rightMissingItems = [];
	
		for (var i=0; i < tableData.length; i++) {
			if (tableData[i].atvise_marker) {
				if (tableData[i].rights.engineer && node_rights && node_rights[1].rights.execute)
					deleteItems.push(tableData[i].group ? (tableData[i].group + "." + tableData[i].name) : tableData[i].name);
				else
					rightMissingItems.push(tableData[i].group ? (tableData[i].group + "." + tableData[i].name) : tableData[i].name);
			}
		}
		
		if (rightMissingItems.length == 0 && deleteItems.length == 0)
			deleteItems = "\nT{No configuration(s) selected.}";
		else if (deleteItems.length > 0)
			deleteItems = "\nT{Configuration(s)}: " + deleteItems.toString().replaceAll(",",", ");
		/*	
		if (rightMissingItems.length > 0)
			rightMissingItems = "\n\nT{Permission missing}: " + rightMissingItems.toString().replaceAll(",",", ");
		*/	
		webMI.display.openWindow({
			display: "SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.message_dialog",
			extern: false,
			width: 400,
			height: 240 + 20,
			menubar: false,
			modal: true,
			movable: true,
			resizable: false,
			scrollbars: false,
			status: false,
			title: "T{Delete}",
			toolbar: false,
			query: {
				btn1: "T{OK}",
				btn2: "T{Cancel}",
				headline: "T{Delete all selected configurations}?",
				msg1: deleteItems,
				msg2: rightMissingItems,
				action_btn1: "com.atvise.MailManager.deleteSelectedListEntries"
			}
		});
	},
	"button_delete"
);

webMI.trigger.connect("com.atvise.MailManager.deleteSelectedListEntries", function (e) {
	var tableData = tableController.getData();
	for (var i=0; i < tableData.length; i++) {
		if (tableData[i].atvise_marker) {
			webMI.data.call("MailDeleteConfiguration", {configuration: (tableData[i].group ? (tableData[i].group + "." + tableData[i].name) : tableData[i].name)}, function(result) {
				getConfigurations();
			});
		}		
	}
	
	e.value.close();
});

webMI.trigger.connect("com.atvise.MailManager.refreshList", function (e) {
	if (tableLoaded) {
		setTimeout(function() { getConfigurations() }, 250);
	}
});

//disable CSV button for mobile devices
if (
	/mobile|android|blackberry|fennec|iemobile|ip(hone|ad|od)|opera m(ob|in)i|playbook|silk|windows (ce|phone)/i.test(
		navigator.userAgent
	)
) {
	webMI.trigger.fire("com.atvise.setActive", false, "csv");
}]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement.ConfigurationHandler" ExportedBrowseName="1:ConfigurationHandler" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS" BrowseName="1:SERVERSCRIPTS">
		<DisplayName Locale="en">SERVERSCRIPTS</DisplayName>
		<Description Locale="en">SERVERSCRIPTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement.ConfigurationHandler" BrowseName="1:ConfigurationHandler" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">ConfigurationHandler</DisplayName>
		<Description Locale="en">ConfigurationHandler</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="configuration" type="string" trigger="false" relative="false" value=""/>
  <parameter name="action" type="string" trigger="false" relative="false" value=""/>
  <code><![CDATA[var baseDir = "AGENT.OBJECTS.ATVISE.Mail";
var statusAddr = baseDir + ".sendMailLog";

function _getScript(cfg) {

return '<?xml version="1.0" encoding="UTF-8"?><script>\n' +
	  '<parameter name="alarmState" type="number" trigger="false" relative="false" value=""/>\n' +
	  '<code><![CDATA[\n' + 
	'var date = new Date();\n' +
	'const timezoneOffset = Math.abs(date.getTimezoneOffset()/60);\n' +
	'var today = date.getDay();\n' +
	'var actTime = ((date.getHours()) * 60 * 60 *1000) + (date.getMinutes() * 60 * 1000) + (date.getSeconds()*1000) + date.getMilliseconds();\n' +
	'var aktUsers = [];\n' +
	'var nodeobj = Ua.findNode("AGENT.OBJECTS.ATVISE.Mail");\n' +
	'var ret = nodeobj.result.browse({\n' +
	'	direction: Ua.Node.BROWSEDIRECTION_FORWARD,\n' +
	'	reference: Ua.Reference.HIERARCHICALREFERENCES,\n' +
	'	subType: true,\n' +
	'	nodeClass: Ua.NodeClass.UNSPECIFIED,\n' +
	'	maxResult: 0\n' +
	'});\n\n\n' +
	'for (var i = 0; i < ret.result.length; ++i){\n' +
	'	if(ret.result[i].node.dataType.value == "i=12" && ret.result[i].node.browseName.name != "sendMailLog"){\n' +
	'		var config = JSON.parse(ret.result[i].node.value);\n' +
	'		var alarmstates = config.alarm.state;\n' +
	'		var workDays = config.cycleTime.daysOfWeek;\n' +
	'		var priorityOperator,priorityValue,nodeAddress,groupAddress;\n' +
	'		if(config.prio.active == "true"){priorityOperator=config.prio.operator;priorityValue=config.prio.value}else{priorityOperator="";priorityValue=""};\n' +
	'		(config.group.active == "true")?groupAddress=config.group.address:groupAddress="";\n' +
	'		(config.nodes.active == "true")?nodeAddress=config.nodes.address:nodeAddress="";\n\n' +
	'		if(config.active == "true" && workDays.includes(today) && alarmstates.includes(alarmState) && actTime >= config.start && actTime < config.end){\n' +
	'			aktUsers.push({name:config.name, mail:config.mail, prioOperator:priorityOperator, prioValue:priorityValue, nodeAddress:nodeAddress, groupAddress:groupAddress});\n' +
	'		}\n' +
	'	}\n' +
	'}\n' +
	'if(aktUsers.length > 0){\n' +
	'	return aktUsers;\n' +
	'}else{\n' +
	'	aktUsers = {error:"Alarm MailManagement: At this time there is no active user responsible for this alarm state"};\n' +
	'	return aktUsers;\n' +
	'}\n\n\n' +
	']]\></code></script>'
}
/**
 * create a folder node
 * @param address
 * @param nodeClass
 * @param typeDefinition
 * @param dataType
 * @param value
 */
function _createFolder(address, nodeClass, typeDefinition, dataType, value) {
	Ua.createNode(address, {
		"nodeClass": Ua.NodeClass[nodeClass],
		"parent": address.substring(0, address.lastIndexOf('.')),
		"typeDefinition": typeDefinition,
	});
}

/**
 * create a node
 * @param address
 * @param nodeClass
 * @param typeDefinition
 * @param dataType
 * @param value
 */
function _createNode(address, nodeClass, typeDefinition, dataType, value) {
	Ua.createNode(address, {
		"nodeClass": Ua.NodeClass[nodeClass],
		"parent": address.substring(0, address.lastIndexOf('.')),
		"typeDefinition": typeDefinition,
		"dataType": Ua.DataType[dataType],
		"value": value
	});
}


/**
 * read status node
 */
function _readStatus() {
	var statusNode = Ua.findNode(statusAddr);
	var statusNodeExist = Ua.Status(statusNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	var upperDir = statusAddr.substring(0, statusAddr.lastIndexOf("."));
	var upperDirNode = Ua.findNode(upperDir);
	var upperDirExist = Ua.Status(upperDirNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	var ret = '{"active": false, "count": 0, "log": {}}';
	if(statusNodeExist && statusNode.result.value != "") {
		ret = statusNode.result.value;
		
		try {
			ret = JSON.parse(ret);
		} catch (ex) {
			ret = undefined;
		}
	} else if (upperDirExist && upperDirNode.result.permissions.session.engineer) {
			_createNode(statusAddr, "VARIABLE", "i=62", "STRING", ret, "");
	}

	return ret;
}

/**
 * read configuration from node
 * @param name
 */
function _readConfig(name) {
	var node = name;
	if (name.indexOf("AGENT.OBJECTS") == -1) {
		node = baseDir + "." + name;
	}

	var readNode = Ua.findNode(node);
	var readNodeExist = Ua.Status(readNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (!readNodeExist || !readNode.result.permissions.session.execute) {
		return false;
	} else {
		var ret = {error: -1, errorstring: "Report: Configuration could not be parsed."};
		try {
			ret = JSON.parse(readNode.result.value);
		} catch(ex) {}

		return ret;
	}
}

/**
 * read all configurations from nodes
 */
function _readAllConfigs() {
	var ret = [];
	var folder = Ua.findNode(baseDir);
	
	var folderExist = Ua.Status(folder) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (!folderExist)
		return false;

	var result = folder.result.browse({
		direction: Ua.Node.BROWSEDIRECTION_FORWARD,
		reference: Ua.Reference.HIERARCHICALREFERENCES,
		subType: true,
		nodeClass: Ua.NodeClass.NODECLASS_UNSPECIFIED,
		typeDefinition : Ua.VariableType.BASEVARIABLETYPE,
		recursive: false,
		maxResult: 0
	}).result;

	for (var i in result) {
		if (result[i].node.nodeId.address.indexOf("sendMailLog") == -1 && result[i].node.dataType.value == "i=12")
			ret.push(_readConfig(result[i].node.nodeId.address));
	}
	
	return ret;
}

function _writeConfig(cfg) {
	//var scriptvalue = _createConfiguration(cfg);
	var node = baseDir + "." + cfg.name;
	var path = node.substring(0, node.lastIndexOf("."));
	checkDir(path);	
	checkScript(baseDir+".sendMail",cfg);	
	var writeNode = Ua.findNode(node);
	var writeNodeExist = Ua.Status(writeNode) != Ua.Status.BADNODEIDUNKNOWN;

	var pathNode = Ua.findNode(path);
	if(!pathNode.result.permissions.session.engineer)
		return false;

	if (!writeNodeExist) {
		_createNode(node, "VARIABLE", Ua.VariableType.BASEVARIABLETYPE, "STRING", JSON.stringify(cfg));
	} else {
		writeNode.result.value = JSON.stringify(cfg);
	}
	
	return true;
}
function checkScript(path){
	var scriptvalue = _getScript();
	var scriptNode = Ua.findNode(path);
	var scriptNodeExist = Ua.Status(scriptNode) != Ua.Status.BADNODEIDUNKNOWN;
	if (!scriptNodeExist) {
		_createNode(path, "VARIABLE", "VariableTypes.ATVISE.ScriptCode", "XMLELEMENT", scriptvalue);
	} else {
		scriptNode.result.value = scriptvalue;
	}
}

function _deleteConfig(name) {
	if (typeof name == "undefined")
		return {error: -1, errorstring: "Report: Configuration name is not specified."};

	var node = name;
	if (name.indexOf("AGENT.OBJECTS") == -1) {
		node = baseDir + "." + name;
	} else {
		name = node.replace(baseDir + ".","");
	}

	var statusNode = Ua.findNode(statusAddr);
	var statusNodeExist = Ua.Status(statusNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (statusNodeExist) {
		var status = statusNode.result.value;
		try {
			status = JSON.parse(status);
			if(status.log && status.log[name]) {
				delete status.log[name];
				statusNode.result.value = JSON.stringify(status);
			}
		} catch (ex) {
			console.log("Report: Status node could not be parsed.")

		}
	} 

	var readNode = Ua.findNode(node).result;
	var readNodeExist = Ua.Status(readNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (!readNodeExist) {
		return false;
	} else {
		return readNode.remove().result;
	}
}
	
function checkDir(path) {
	var directories = path.split(".");
	var dir = "";
	for (var i in directories) {
		if (dir == "")
			dir = directories[i];
		else
			dir = dir + "." + directories[i];

		var dirNode = Ua.findNode(dir);
		var dirNodeExist = Ua.Status(dirNode) != Ua.Status.BADNODEIDUNKNOWN;

		var upperDir = dir.substring(0, dir.lastIndexOf("."));
		
		if(upperDir) {
			var upperDirNode = Ua.findNode(upperDir);
			if(!upperDirNode.result.permissions.session.engineer)
				return false;
			
			if (!dirNodeExist) {
				_createFolder(dir, "OBJECT", "i=61", "FOLDERTYPE");
			}
		}
	}
}

/**
 * Configuration handle functions
 */

if (configuration && typeof configuration == "string") {
	try {
		configuration = JSON.parse(configuration);
	} catch (ex) {}
}

checkDir(baseDir);
var status = _readStatus();

// Call function based on given parameters
if (action == "read" && typeof configuration == "string" && configuration != "") {
	return _readConfig(configuration);
} else if (action == "read" && typeof configuration == "string" && configuration == "") {
	return _readAllConfigs();
} else if (action == "write") { //  && typeof configuration == "object"
	//if (configuration.force)
		return _writeConfig(configuration);

	/*
	var validityCheck = _checkConfig(configuration);
	if (validityCheck == true)
		return _writeConfig(configuration);
	else
		return validityCheck;
	*/
} else if (action == "check" && typeof configuration == "object") {
	return _checkConfig(configuration);
} else if (action == "delete" && typeof configuration == "string") {
	return _deleteConfig(configuration);
} else {
	return {error: -1, errorstring: "Report: No valid action for configuration handler specified."};
}]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement.SendMail" ExportedBrowseName="1:SendMail" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS" BrowseName="1:SERVERSCRIPTS">
		<DisplayName Locale="en">SERVERSCRIPTS</DisplayName>
		<Description Locale="en">SERVERSCRIPTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement.SendMail" BrowseName="1:SendMail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">SendMail</DisplayName>
		<Description Locale="en">SendMail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="alarm" type="alarm" trigger="true" relative="false" value=""/>
  <parameter name="smtpserver" type="string" trigger="false" relative="false" value="MailAlarm"/>
  <parameter name="from" type="string" trigger="false" relative="false" value="atvise@gmx.at"/>
  <parameter name="subject" type="string" trigger="false" relative="false" value="atvise alarm"/>
  <code><![CDATA[// Send E-Mail depending on scheduler

var nodeId = "AGENT.SMTPSERVERS." + smtpserver;
var smtpServer = Ua.findNode(nodeId);
if (Ua.Status(smtpServer) != Ua.Status.BADNODEIDUNKNOWN) {
	if(alarm.state != 3 || (alarm.state == 3 && alarm.retain == true)){
		var activeUsers = call("AGENT.OBJECTS.ATVISE.Mail.sendMail", {alarmState: alarm.state});
		if(activeUsers.error){
			console.log(activeUsers.error);		
		}
		else{
			var sendcount = 0;
			activeUsers.forEach(function(user) {
				var prio = user.prioOperator && user.prioValue ? ((eval("alarm.priority " + user.prioOperator + " user.prioValue") || user.prioValue == "") ? true : false) : true;
				var addr = (alarm.InputNode.indexOf(user.nodeAddress) !== -1 || user.nodeAddress == "") ? true : false;
				var group = (alarm.Groups.includes(user.groupAddress) || user.groupAddress == "")?true:false;
				if(prio == true && addr == true && group == true){
					sendMail(user.mail);
					sendcount++;
				}
			});
			(sendcount == 0)?console.log("Alarm MailManagement: No user is responsible for this node, priority and group"):"";
		}
	}
} 
else console.error("Alarm MailManagement: SMTP server '"+smtpserver+"' doesn't exist");

function sendMail(Mails){
	Mails.forEach(function(userMail) {
		var MailAddr = userMail.trim();
		var mailText = alarm.address.replace("AGENT.OBJECTS.","") + " " + alarm.eventtext.en + "\nvalue: " + alarm.value + "\nID: " + alarm.AlarmId;
		var parameters = {
			"smtpserver": smtpserver,
			"content_type": 'text/plain; charset="utf-8"',
			"from": from, 
			"to": MailAddr,
			"subject": subject, 
			"body": mailText
		};
		call("Mail.SendMail",parameters);
		console.log("Alarm MailManagement: Alarm notification has been sent to "+MailAddr);
	});
}]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement" ExportedBrowseName="1:MailManagement" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS" BrowseName="1:SERVERSCRIPTS">
		<DisplayName Locale="en">SERVERSCRIPTS</DisplayName>
		<Description Locale="en">SERVERSCRIPTS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement.SendMail" BrowseName="1:SendMail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">SendMail</DisplayName>
		<Description Locale="en">SendMail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="alarm" type="alarm" trigger="true" relative="false" value=""/>
  <parameter name="smtpserver" type="string" trigger="false" relative="false" value="MailAlarm"/>
  <parameter name="from" type="string" trigger="false" relative="false" value="atvise@gmx.at"/>
  <parameter name="subject" type="string" trigger="false" relative="false" value="atvise alarm"/>
  <code><![CDATA[// Send E-Mail depending on scheduler

var nodeId = "AGENT.SMTPSERVERS." + smtpserver;
var smtpServer = Ua.findNode(nodeId);
if (Ua.Status(smtpServer) != Ua.Status.BADNODEIDUNKNOWN) {
	if(alarm.state != 3 || (alarm.state == 3 && alarm.retain == true)){
		var activeUsers = call("AGENT.OBJECTS.ATVISE.Mail.sendMail", {alarmState: alarm.state});
		if(activeUsers.error){
			console.log(activeUsers.error);		
		}
		else{
			var sendcount = 0;
			activeUsers.forEach(function(user) {
				var prio = user.prioOperator && user.prioValue ? ((eval("alarm.priority " + user.prioOperator + " user.prioValue") || user.prioValue == "") ? true : false) : true;
				var addr = (alarm.InputNode.indexOf(user.nodeAddress) !== -1 || user.nodeAddress == "") ? true : false;
				var group = (alarm.Groups.includes(user.groupAddress) || user.groupAddress == "")?true:false;
				if(prio == true && addr == true && group == true){
					sendMail(user.mail);
					sendcount++;
				}
			});
			(sendcount == 0)?console.log("Alarm MailManagement: No user is responsible for this node, priority and group"):"";
		}
	}
} 
else console.error("Alarm MailManagement: SMTP server '"+smtpserver+"' doesn't exist");

function sendMail(Mails){
	Mails.forEach(function(userMail) {
		var MailAddr = userMail.trim();
		var mailText = alarm.address.replace("AGENT.OBJECTS.","") + " " + alarm.eventtext.en + "\nvalue: " + alarm.value + "\nID: " + alarm.AlarmId;
		var parameters = {
			"smtpserver": smtpserver,
			"content_type": 'text/plain; charset="utf-8"',
			"from": from, 
			"to": MailAddr,
			"subject": subject, 
			"body": mailText
		};
		call("Mail.SendMail",parameters);
		console.log("Alarm MailManagement: Alarm notification has been sent to "+MailAddr);
	});
}]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement.ConfigurationHandler" BrowseName="1:ConfigurationHandler" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">ConfigurationHandler</DisplayName>
		<Description Locale="en">ConfigurationHandler</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.SERVERSCRIPTS.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="configuration" type="string" trigger="false" relative="false" value=""/>
  <parameter name="action" type="string" trigger="false" relative="false" value=""/>
  <code><![CDATA[var baseDir = "AGENT.OBJECTS.ATVISE.Mail";
var statusAddr = baseDir + ".sendMailLog";

function _getScript(cfg) {

return '<?xml version="1.0" encoding="UTF-8"?><script>\n' +
	  '<parameter name="alarmState" type="number" trigger="false" relative="false" value=""/>\n' +
	  '<code><![CDATA[\n' + 
	'var date = new Date();\n' +
	'const timezoneOffset = Math.abs(date.getTimezoneOffset()/60);\n' +
	'var today = date.getDay();\n' +
	'var actTime = ((date.getHours()) * 60 * 60 *1000) + (date.getMinutes() * 60 * 1000) + (date.getSeconds()*1000) + date.getMilliseconds();\n' +
	'var aktUsers = [];\n' +
	'var nodeobj = Ua.findNode("AGENT.OBJECTS.ATVISE.Mail");\n' +
	'var ret = nodeobj.result.browse({\n' +
	'	direction: Ua.Node.BROWSEDIRECTION_FORWARD,\n' +
	'	reference: Ua.Reference.HIERARCHICALREFERENCES,\n' +
	'	subType: true,\n' +
	'	nodeClass: Ua.NodeClass.UNSPECIFIED,\n' +
	'	maxResult: 0\n' +
	'});\n\n\n' +
	'for (var i = 0; i < ret.result.length; ++i){\n' +
	'	if(ret.result[i].node.dataType.value == "i=12" && ret.result[i].node.browseName.name != "sendMailLog"){\n' +
	'		var config = JSON.parse(ret.result[i].node.value);\n' +
	'		var alarmstates = config.alarm.state;\n' +
	'		var workDays = config.cycleTime.daysOfWeek;\n' +
	'		var priorityOperator,priorityValue,nodeAddress,groupAddress;\n' +
	'		if(config.prio.active == "true"){priorityOperator=config.prio.operator;priorityValue=config.prio.value}else{priorityOperator="";priorityValue=""};\n' +
	'		(config.group.active == "true")?groupAddress=config.group.address:groupAddress="";\n' +
	'		(config.nodes.active == "true")?nodeAddress=config.nodes.address:nodeAddress="";\n\n' +
	'		if(config.active == "true" && workDays.includes(today) && alarmstates.includes(alarmState) && actTime >= config.start && actTime < config.end){\n' +
	'			aktUsers.push({name:config.name, mail:config.mail, prioOperator:priorityOperator, prioValue:priorityValue, nodeAddress:nodeAddress, groupAddress:groupAddress});\n' +
	'		}\n' +
	'	}\n' +
	'}\n' +
	'if(aktUsers.length > 0){\n' +
	'	return aktUsers;\n' +
	'}else{\n' +
	'	aktUsers = {error:"Alarm MailManagement: At this time there is no active user responsible for this alarm state"};\n' +
	'	return aktUsers;\n' +
	'}\n\n\n' +
	']]\></code></script>'
}
/**
 * create a folder node
 * @param address
 * @param nodeClass
 * @param typeDefinition
 * @param dataType
 * @param value
 */
function _createFolder(address, nodeClass, typeDefinition, dataType, value) {
	Ua.createNode(address, {
		"nodeClass": Ua.NodeClass[nodeClass],
		"parent": address.substring(0, address.lastIndexOf('.')),
		"typeDefinition": typeDefinition,
	});
}

/**
 * create a node
 * @param address
 * @param nodeClass
 * @param typeDefinition
 * @param dataType
 * @param value
 */
function _createNode(address, nodeClass, typeDefinition, dataType, value) {
	Ua.createNode(address, {
		"nodeClass": Ua.NodeClass[nodeClass],
		"parent": address.substring(0, address.lastIndexOf('.')),
		"typeDefinition": typeDefinition,
		"dataType": Ua.DataType[dataType],
		"value": value
	});
}


/**
 * read status node
 */
function _readStatus() {
	var statusNode = Ua.findNode(statusAddr);
	var statusNodeExist = Ua.Status(statusNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	var upperDir = statusAddr.substring(0, statusAddr.lastIndexOf("."));
	var upperDirNode = Ua.findNode(upperDir);
	var upperDirExist = Ua.Status(upperDirNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	var ret = '{"active": false, "count": 0, "log": {}}';
	if(statusNodeExist && statusNode.result.value != "") {
		ret = statusNode.result.value;
		
		try {
			ret = JSON.parse(ret);
		} catch (ex) {
			ret = undefined;
		}
	} else if (upperDirExist && upperDirNode.result.permissions.session.engineer) {
			_createNode(statusAddr, "VARIABLE", "i=62", "STRING", ret, "");
	}

	return ret;
}

/**
 * read configuration from node
 * @param name
 */
function _readConfig(name) {
	var node = name;
	if (name.indexOf("AGENT.OBJECTS") == -1) {
		node = baseDir + "." + name;
	}

	var readNode = Ua.findNode(node);
	var readNodeExist = Ua.Status(readNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (!readNodeExist || !readNode.result.permissions.session.execute) {
		return false;
	} else {
		var ret = {error: -1, errorstring: "Report: Configuration could not be parsed."};
		try {
			ret = JSON.parse(readNode.result.value);
		} catch(ex) {}

		return ret;
	}
}

/**
 * read all configurations from nodes
 */
function _readAllConfigs() {
	var ret = [];
	var folder = Ua.findNode(baseDir);
	
	var folderExist = Ua.Status(folder) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (!folderExist)
		return false;

	var result = folder.result.browse({
		direction: Ua.Node.BROWSEDIRECTION_FORWARD,
		reference: Ua.Reference.HIERARCHICALREFERENCES,
		subType: true,
		nodeClass: Ua.NodeClass.NODECLASS_UNSPECIFIED,
		typeDefinition : Ua.VariableType.BASEVARIABLETYPE,
		recursive: false,
		maxResult: 0
	}).result;

	for (var i in result) {
		if (result[i].node.nodeId.address.indexOf("sendMailLog") == -1 && result[i].node.dataType.value == "i=12")
			ret.push(_readConfig(result[i].node.nodeId.address));
	}
	
	return ret;
}

function _writeConfig(cfg) {
	//var scriptvalue = _createConfiguration(cfg);
	var node = baseDir + "." + cfg.name;
	var path = node.substring(0, node.lastIndexOf("."));
	checkDir(path);	
	checkScript(baseDir+".sendMail",cfg);	
	var writeNode = Ua.findNode(node);
	var writeNodeExist = Ua.Status(writeNode) != Ua.Status.BADNODEIDUNKNOWN;

	var pathNode = Ua.findNode(path);
	if(!pathNode.result.permissions.session.engineer)
		return false;

	if (!writeNodeExist) {
		_createNode(node, "VARIABLE", Ua.VariableType.BASEVARIABLETYPE, "STRING", JSON.stringify(cfg));
	} else {
		writeNode.result.value = JSON.stringify(cfg);
	}
	
	return true;
}
function checkScript(path){
	var scriptvalue = _getScript();
	var scriptNode = Ua.findNode(path);
	var scriptNodeExist = Ua.Status(scriptNode) != Ua.Status.BADNODEIDUNKNOWN;
	if (!scriptNodeExist) {
		_createNode(path, "VARIABLE", "VariableTypes.ATVISE.ScriptCode", "XMLELEMENT", scriptvalue);
	} else {
		scriptNode.result.value = scriptvalue;
	}
}

function _deleteConfig(name) {
	if (typeof name == "undefined")
		return {error: -1, errorstring: "Report: Configuration name is not specified."};

	var node = name;
	if (name.indexOf("AGENT.OBJECTS") == -1) {
		node = baseDir + "." + name;
	} else {
		name = node.replace(baseDir + ".","");
	}

	var statusNode = Ua.findNode(statusAddr);
	var statusNodeExist = Ua.Status(statusNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (statusNodeExist) {
		var status = statusNode.result.value;
		try {
			status = JSON.parse(status);
			if(status.log && status.log[name]) {
				delete status.log[name];
				statusNode.result.value = JSON.stringify(status);
			}
		} catch (ex) {
			console.log("Report: Status node could not be parsed.")

		}
	} 

	var readNode = Ua.findNode(node).result;
	var readNodeExist = Ua.Status(readNode) != Ua.Status.BADNODEIDUNKNOWN;
	
	if (!readNodeExist) {
		return false;
	} else {
		return readNode.remove().result;
	}
}
	
function checkDir(path) {
	var directories = path.split(".");
	var dir = "";
	for (var i in directories) {
		if (dir == "")
			dir = directories[i];
		else
			dir = dir + "." + directories[i];

		var dirNode = Ua.findNode(dir);
		var dirNodeExist = Ua.Status(dirNode) != Ua.Status.BADNODEIDUNKNOWN;

		var upperDir = dir.substring(0, dir.lastIndexOf("."));
		
		if(upperDir) {
			var upperDirNode = Ua.findNode(upperDir);
			if(!upperDirNode.result.permissions.session.engineer)
				return false;
			
			if (!dirNodeExist) {
				_createFolder(dir, "OBJECT", "i=61", "FOLDERTYPE");
			}
		}
	}
}

/**
 * Configuration handle functions
 */

if (configuration && typeof configuration == "string") {
	try {
		configuration = JSON.parse(configuration);
	} catch (ex) {}
}

checkDir(baseDir);
var status = _readStatus();

// Call function based on given parameters
if (action == "read" && typeof configuration == "string" && configuration != "") {
	return _readConfig(configuration);
} else if (action == "read" && typeof configuration == "string" && configuration == "") {
	return _readAllConfigs();
} else if (action == "write") { //  && typeof configuration == "object"
	//if (configuration.force)
		return _writeConfig(configuration);

	/*
	var validityCheck = _checkConfig(configuration);
	if (validityCheck == true)
		return _writeConfig(configuration);
	else
		return validityCheck;
	*/
} else if (action == "check" && typeof configuration == "object") {
	return _checkConfig(configuration);
} else if (action == "delete" && typeof configuration == "string") {
	return _deleteConfig(configuration);
} else {
	return {error: -1, errorstring: "Report: No valid action for configuration handler specified."};
}]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailDeleteConfiguration" ExportedBrowseName="1:MailDeleteConfiguration" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS" BrowseName="1:WEBMIMETHODS">
		<DisplayName Locale="en">WEBMIMETHODS</DisplayName>
		<Description Locale="en">WEBMIMETHODS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailDeleteConfiguration" BrowseName="1:MailDeleteConfiguration" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailDeleteConfiguration</DisplayName>
		<Description Locale="en">MailDeleteConfiguration</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="request" type="http.request" trigger="false" relative="false" value=""/>
  <code><![CDATA[return call("MailManagement.ConfigurationHandler", {action: "delete", configuration: request.postvalues["configuration"]});]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailReadConfiguration" ExportedBrowseName="1:MailReadConfiguration" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS" BrowseName="1:WEBMIMETHODS">
		<DisplayName Locale="en">WEBMIMETHODS</DisplayName>
		<Description Locale="en">WEBMIMETHODS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailReadConfiguration" BrowseName="1:MailReadConfiguration" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailReadConfiguration</DisplayName>
		<Description Locale="en">MailReadConfiguration</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="request" type="http.request" trigger="false" relative="false" value=""/>
  <code><![CDATA[var name = request.postvalues["configuration"] ? request.postvalues["configuration"] : "";
 return call("MailManagement.ConfigurationHandler", {action: "read", configuration: name});]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailWriteConfiguration" ExportedBrowseName="1:MailWriteConfiguration" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS" BrowseName="1:WEBMIMETHODS">
		<DisplayName Locale="en">WEBMIMETHODS</DisplayName>
		<Description Locale="en">WEBMIMETHODS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailWriteConfiguration" BrowseName="1:MailWriteConfiguration" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailWriteConfiguration</DisplayName>
		<Description Locale="en">MailWriteConfiguration</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="request" type="http.request" trigger="false" relative="false" value=""/>
  <code><![CDATA[return call("MailManagement.ConfigurationHandler", {action: "write", configuration: request.postvalues["configuration"]});]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS" ExportedBrowseName="1:WEBMIMETHODS" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS" BrowseName="1:WEBMIMETHODS">
		<DisplayName Locale="en">WEBMIMETHODS</DisplayName>
		<Description Locale="en">WEBMIMETHODS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailDeleteConfiguration" BrowseName="1:MailDeleteConfiguration" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailDeleteConfiguration</DisplayName>
		<Description Locale="en">MailDeleteConfiguration</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="request" type="http.request" trigger="false" relative="false" value=""/>
  <code><![CDATA[return call("MailManagement.ConfigurationHandler", {action: "delete", configuration: request.postvalues["configuration"]});]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailReadConfiguration" BrowseName="1:MailReadConfiguration" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailReadConfiguration</DisplayName>
		<Description Locale="en">MailReadConfiguration</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="request" type="http.request" trigger="false" relative="false" value=""/>
  <code><![CDATA[var name = request.postvalues["configuration"] ? request.postvalues["configuration"] : "";
 return call("MailManagement.ConfigurationHandler", {action: "read", configuration: name});]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS.MailWriteConfiguration" BrowseName="1:MailWriteConfiguration" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailWriteConfiguration</DisplayName>
		<Description Locale="en">MailWriteConfiguration</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.WEBMIMETHODS</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.ScriptCode</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<script>
  <metadata>
    <priority>0</priority>
    <owner>root</owner>
    <runcontext>caller</runcontext>
  </metadata>
  <parameter name="request" type="http.request" trigger="false" relative="false" value=""/>
  <code><![CDATA[return call("MailManagement.ConfigurationHandler", {action: "write", configuration: request.postvalues["configuration"]});]]]]><![CDATA[></code>
</script>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=AGENT" BrowseName="1:AGENT">
		<DisplayName Locale="en">AGENT</DisplayName>
		<Description Locale="en">AGENT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=ObjectTypes.ATVISE.Server.Local</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=AGENT.DISPLAYS.MAIN.E-Mail Manager" ExportedBrowseName="1:E-Mail Manager" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.DISPLAYS" BrowseName="1:DISPLAYS">
		<DisplayName Locale="en">DISPLAYS</DisplayName>
		<Description Locale="en">DISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=AGENT.DISPLAYS.MAIN" BrowseName="1:MAIN">
		<DisplayName Locale="en">MAIN</DisplayName>
		<Description Locale="en">MAIN</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.DISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=AGENT.DISPLAYS.MAIN.E-Mail Manager" BrowseName="1:E-Mail Manager" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">E-Mail Manager</DisplayName>
		<Description Locale="en">E-Mail Manager</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=AGENT.DISPLAYS.MAIN</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg height="890" version="1.2" width="1675" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <metadata>
  <atv:gridconfig enabled="false" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="false" height="10" width="10"/>
 </metadata>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <svg atv:refpx="837.5" atv:refpy="445" height="680" id="id_0" transform="matrix(1.3086,0,0,1.3088,0,0)" width="1280" x="0" xlink:href="SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailManager" y="0">
  <atv:argument name="edit_display" value="SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailScheduler"/>
 </svg>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailManager" ExportedBrowseName="1:MailManager" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS" BrowseName="1:OBJECTDISPLAYS">
		<DisplayName Locale="en">OBJECTDISPLAYS</DisplayName>
		<Description Locale="en">OBJECTDISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced" BrowseName="1:Advanced">
		<DisplayName Locale="en">Advanced</DisplayName>
		<Description Locale="en">Advanced</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailManager" BrowseName="1:MailManager" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailManager</DisplayName>
		<Description Locale="en">MailManager</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg height="680" version="1.2" width="1280" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <desc>Report overview display.</desc>
 <title>Report Management</title>
 <metadata>
  <!-- common -->
  <!-- table -->
  <!-- font -->
  <!-- appeareance -->
  <!-- options -->
  <!-- menu -->
  <!-- security -->
  <atv:parameter behavior="hidden" defaultvalue="true" desc="device scaling" name="deviceScaling" valuetype="bool"/>
  <atv:parameter behavior="hidden" defaultvalue="" desc="table ID of parent" name="parentID" valuetype="string"/>
  <atv:parameter behavior="mandatory" defaultvalue="report_table" desc="table ID" group="Table" name="tableID" substitute="$TABLEID$" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="30" desc="table header height" group="Table" name="header_height" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="20" desc="table row height" group="Table" name="row_height" valuetype="number"/>
  <atv:parameter behavior="optional" config="Arial;Courier;Tahoma;Verdana" defaultvalue="Arial" desc="font family" group="Font" name="font_family" valuetype="enum"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFontColor" desc="font color" group="Font" name="globalFontColor" substitute="$FONTCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table header font size" group="Font" name="header_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table row font size" group="Font" name="row_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table detail font size" group="Font" name="detail_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="12" desc="table footer font size" group="Font" name="footer_font_size" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvBorderColor" desc="border color" group="Appearance" name="globalBorderColor" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFillColor" desc="fill color" group="Appearance" name="globalFillColor" substitute="$FILLCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvSymbolColor" desc="symbol color" group="Appearance" name="globalSymbolColor" substitute="$SYMBOLCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvObjectDisplays.Tables.ColorConfig" desc="global color config" group="Appearance" name="globalColorConfig" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="atviseTheme" desc="custom theme" group="Appearance" name="theme" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailScheduler" desc="Mail configurator" group="Options" name="edit_display" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="paging" group="Options" name="paging" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="filter bar enabled" group="Options" name="filterBar" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="filter regular expressions" group="Options" name="filterRegExp" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="filter use placeholder" group="Options" name="filterStar" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="filter case sensitive" group="Options" name="filterCaseSensitive" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="1" desc="filter min. input length" group="Options" name="filterMinInputLength" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="stick parent and child together" group="Options" name="parentChildStickTogether" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="false" desc="cell linebreak" group="Options" name="linebreak" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="columns reorderable" group="Options" name="columnReorder" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="multiselect on cell click" group="Options" name="multicellselect" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="show menu" group="Menu options" name="showMenu" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="T{Export CSV}" desc="custom menu title" group="Menu options" name="showMenuCustomTitle" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="Show/Hide" desc="picker menu title" group="Menu options" name="showPickerMenuTitle" valuetype="string"/>
  <atv:parameter behavior="optional" defaultvalue="true" desc="show picker menu" group="Menu options" name="showPickerMenu" valuetype="bool"/>
  <atv:parameter behavior="optional" defaultvalue="300" desc="menu width" group="Menu options" name="menuWidth" valuetype="number"/>
  <atv:parameter behavior="optional" defaultvalue="300" desc="menu height" group="Menu options" name="menuHeight" valuetype="number"/>
  <atv:parameter behavior="optional" config="SYSTEM.SECURITY.RIGHTS" defaultvalue="" desc="right for CSV export" group="Security" name="rightExport" valuetype="address"/>
  <atv:gridconfig enabled="true" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="true" height="5" width="5"/>
 </metadata>
 <rect atv:refpx="1002.02" atv:refpy="48.975" fill="$FILLCOLOR$" height="65.5" id="filters_bg" rx="0" ry="0" stroke="#000000" stroke-width="1" width="1280" x="0" y="0"/>
 <text atv:refpx="177.995" atv:refpy="33" fill="$FONTCOLOR$" font-family="Arial" font-size="22" id="title" text-anchor="start" x="55" y="40.5">T{E-Mail Manager}</text>
 <svg atv:refpx="27.799" atv:refpy="19.999" height="60" id="logo" transform="matrix(0.6,0,0,0.6,0,0)" width="60" x="16.667" xlink:href="SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60.Mail" y="23.333">
  <atv:argument name="symbolColor" prefix="globalSymbolColor" value=""/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <text atv:refpx="1535" atv:refpy="680.5" fill="#e5e5e5" font-family="Arial" font-size="12" id="id_13" x="1535" y="685"/>
 <svg atv:refpx="320" atv:refpy="-15" height="20" id="iconMessage" width="80" x="390" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.slickgrid.table_notification" y="-25">
  <atv:argument name="tableID" prefix="tableID"/>
  <atv:argument name="messageBoard" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.message_board"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:refpx="515" atv:refpy="-15" height="20" id="id_7" width="80" x="475" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.slickgrid.table_keyboard" y="-25">
  <atv:argument name="tableID" prefix="tableID"/>
  <atv:argument name="keyboard_display" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.keyboard.keyboard"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:refpx="640" atv:refpy="667.5" height="25" id="table_footer" transform="matrix(2,0,0,1,0,0)" width="640" x="0" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.slickgrid.table_footer" y="655">
  <atv:argument name="tableID" prefix="tableID"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <foreignObject height="589" id="table_panel" width="1280" x="0" y="66">
  <div style="width:100%;height:100%" xmlns="http://www.w3.org/1999/xhtml">
   <div id="$TABLEID$" style="width:100%; height:100%;"/>
  </div>
 </foreignObject>
 <svg atv:refpx="368.25" atv:refpy="-14.5" height="20" id="iconSelected" transform="matrix(0.55,0,0,0.55,0,0)" width="20" x="654.546" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.check" y="-36.364">
  <atv:argument name="symbolColor" value="#575757"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:refpx="357.125" atv:refpy="-13.5" height="20" id="iconBurger" transform="matrix(0.65,0,0,0.65,0,0)" width="20" x="576.923" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.table.burger" y="-32.307">
  <atv:argument name="symbolColor" value="#575757"/>
  <atv:argument name="displayAcNotification" value="false"/>
 </svg>
 <svg atv:dynamic="true" atv:refpx="1226.33" atv:refpy="40.333" height="30" id="button_refresh" transform="matrix(0.5,0,0,1.3333,0,0)" width="80" x="2460" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="9.75">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="3"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="84.5"/>
  <atv:overwrite id="id_0" transform="matrix(0.8889,0,0,1,0,0)" width="89.5"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="displayAcNotification" value="false"/>
  <atv:argument name="visibilityLabel" value="hidden"/>
  <atv:argument name="visibilitySymbol" value="inherit"/>
  <atv:argument name="symbol" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.file_reload"/>
  <atv:argument name="tooltip" value="T{Refresh}"/>
  <atv:overwrite height="38" id="id_6" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite id="button_label_2" transform="matrix(2,0,0,0.75,0,0)" x="20" y="31.5"/>
  <atv:overwrite id="button_label_1" transform="matrix(2,0,0,0.75,0,0)" x="20" y="16.5"/>
  <atv:overwrite id="button_label" transform="matrix(2,0,0,0.75,0,0)" x="20" y="24.5"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="34.625"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="13.292"/>
  <atv:overwrite id="button_symbol" transform="matrix(2,0,0,0.75,0,0)" x="10" y="10"/>
  <atv:overwrite height="36" id="button_stroke" transform="matrix(2,0,0,0.75,0,0)" width="36"/>
  <atv:overwrite height="38" id="button_bg" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite height="40" id="outer_frame" transform="matrix(2,0,0,0.75,0,0)" width="40"/>
 </svg>
 <foreignObject height="20" id="id_notification" width="80" x="947" y="25">
  <div style="width:100%;height:100%;float:right;" xmlns="http://www.w3.org/1999/xhtml">
   <div id="notification_area" style="z-index:10000;background-color:#fff;width:80px;height:20px; float: right;" xmlns="http://www.w3.org/1999/xhtml"/>
  </div>
 </foreignObject>
 <script atv:desc="" atv:href="SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailManager" atv:name="Mail Manager" atv:type="text/ecmascript"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <svg atv:dynamic="true" atv:refpx="1073.866" atv:refpy="40.333" height="30" id="button_new" transform="matrix(0.5,0,0,1.3333,0,0)" width="80" x="2278" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="9.75">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="84.5"/>
  <atv:overwrite id="id_0" transform="matrix(0.8889,0,0,1,0,0)" width="89.5"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="displayAcNotification" value="false"/>
  <atv:argument name="visibilityLabel" value="hidden"/>
  <atv:argument name="visibilitySymbol" value="inherit"/>
  <atv:argument name="symbol" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.plus2"/>
  <atv:argument name="tooltip" value="T{Add}"/>
  <atv:overwrite height="37.999" id="id_6" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite id="button_label_2" transform="matrix(2,0,0,0.75,0,0)" x="20" y="31.499"/>
  <atv:overwrite id="button_label_1" transform="matrix(2,0,0,0.75,0,0)" x="20" y="16.499"/>
  <atv:overwrite id="button_label" transform="matrix(2,0,0,0.75,0,0)" x="20" y="24.499"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="34.624"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="13.291"/>
  <atv:overwrite id="button_symbol" transform="matrix(2,0,0,0.75,0,0)" x="10" y="9.999"/>
  <atv:overwrite height="35.999" id="button_stroke" transform="matrix(2,0,0,0.75,0,0)" width="36"/>
  <atv:overwrite height="37.999" id="button_bg" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite height="39.999" id="outer_frame" transform="matrix(2,0,0,0.75,0,0)" width="40"/>
 </svg>
 <svg atv:dynamic="true" atv:refpx="1118.867" atv:refpy="40.333" height="30" id="button_delete" transform="matrix(0.5,0,0,1.3333,0,0)" width="80" x="2368" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="9.75">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="2"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="84.5"/>
  <atv:overwrite id="id_0" transform="matrix(0.8889,0,0,1,0,0)" width="89.5"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="displayAcNotification" value="false"/>
  <atv:argument name="visibilityLabel" value="hidden"/>
  <atv:argument name="visibilitySymbol" value="inherit"/>
  <atv:argument name="symbol" value="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.minus2"/>
  <atv:argument name="tooltip" value="T{Delete}"/>
  <atv:overwrite height="37.999" id="id_6" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite id="button_label_2" transform="matrix(2,0,0,0.75,0,0)" x="20" y="31.499"/>
  <atv:overwrite id="button_label_1" transform="matrix(2,0,0,0.75,0,0)" x="20" y="16.499"/>
  <atv:overwrite id="button_label" transform="matrix(2,0,0,0.75,0,0)" x="20" y="24.499"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="34.624"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(1.2,0,0,0.45,0,0)" x="23.167" y="13.291"/>
  <atv:overwrite id="button_symbol" transform="matrix(2,0,0,0.75,0,0)" x="10" y="9.999"/>
  <atv:overwrite height="35.999" id="button_stroke" transform="matrix(2,0,0,0.75,0,0)" width="36"/>
  <atv:overwrite height="37.999" id="button_bg" transform="matrix(2,0,0,0.75,0,0)" width="38"/>
  <atv:overwrite height="39.999" id="outer_frame" transform="matrix(2,0,0,0.75,0,0)" width="40"/>
 </svg>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailScheduler" ExportedBrowseName="1:MailScheduler" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS" BrowseName="1:OBJECTDISPLAYS">
		<DisplayName Locale="en">OBJECTDISPLAYS</DisplayName>
		<Description Locale="en">OBJECTDISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced" BrowseName="1:Advanced">
		<DisplayName Locale="en">Advanced</DisplayName>
		<Description Locale="en">Advanced</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement" BrowseName="1:MailManagement">
		<DisplayName Locale="en">MailManagement</DisplayName>
		<Description Locale="en">MailManagement</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement.MailScheduler" BrowseName="1:MailScheduler" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">MailScheduler</DisplayName>
		<Description Locale="en">MailScheduler</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Advanced.MailManagement</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg height="700" version="1.2" width="700" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <metadata>
  <atv:parameter behavior="optional" defaultvalue="T{Edit sms scheduler}" desc="headline" name="headline" substitute="$HEADLINE$" valuetype="trstring"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Symbols.20x20.folder_report" desc="symbol" name="symbol" substitute="$SYMBOL$" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.keyboard.keyboard" desc="keyboard display" name="keyboard" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.dialogs.pw_editor" desc="password display" name="passworddisplay" valuetype="display"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFontColor" desc="font color" name="fontColor" substitute="$FONTCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvFillColor" desc="fill color" name="fillColor" substitute="$FILLCOLOR$" valuetype="global"/>
  <atv:parameter behavior="optional" defaultvalue="SYSTEM.GLOBALS.atvSymbolColor" desc="symbol color" name="symbolColor" substitute="$SYMBOLCOLOR$" valuetype="global"/>
  <atv:gridconfig enabled="true" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="false" height="10" width="10"/>
 </metadata>
 <rect atv:refpx="350" atv:refpy="350" fill="$FILLCOLOR$" height="700" id="background" stroke="none" stroke-width="0" width="700" x="0" y="0"/>
 <rect atv:refpx="350.24" atv:refpy="320.019" fill="#ffffff" height="558.86" id="schedule_background" rx="14.542" ry="18.029" stroke="none" stroke-width="0" width="618.076" x="41.202" y="40.589"/>
 <rect atv:refpx="349.408" atv:refpy="306.289" fill="#f5f5f5" height="290.165" id="id_34" rx="14.585" ry="20.909" stroke="none" stroke-width="0" width="579.892" x="59.462" y="161.207"/>
 <text atv:refpx="107.504" atv:refpy="492.706" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="weekdays_label" text-anchor="end" x="158.104" y="498.706">T{Weekday(s)}</text>
 <svg atv:refpx="603.922" atv:refpy="259.165" height="30" id="weekdays_0" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="3140.917" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="194.999" atv:refpy="277.165" height="30" id="weekdays_1" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="45"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="263.796" atv:refpy="277.165" height="30" id="weekdays_2" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="1326.912" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="46"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="331.821" atv:refpy="277.165" height="30" id="weekdays_3" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="1689.713" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="47"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="399.846" atv:refpy="463.165" height="30" id="weekdays_4" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="48"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="467.871" atv:refpy="277.165" height="30" id="weekdays_5" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2415.315" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="49"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="535.897" atv:refpy="259.165" height="30" id="weekdays_6" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2778.116" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="475.165">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="50"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="592.324" atv:refpy="518.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_15" text-anchor="middle" x="603.922" y="523.165">T{Sun.}</text>
 <text atv:refpx="184.134" atv:refpy="518.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_16" text-anchor="middle" x="196.271" y="523.165">T{Mon.}</text>
 <text atv:refpx="263.88" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_17" text-anchor="middle" x="263.88" y="523.165">T{Tue.}</text>
 <text atv:refpx="332.488" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_18" text-anchor="middle" x="332.488" y="523.165">T{Wed.}</text>
 <text atv:refpx="399.096" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_19" text-anchor="middle" x="399.096" y="523.165">T{Thu.}</text>
 <text atv:refpx="468.205" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_21" text-anchor="middle" x="468.205" y="523.165">T{Fri.}</text>
 <text atv:refpx="535.813" atv:refpy="519.665" fill="$FONTCOLOR$" font-family="Arial" font-size="10" id="id_22" text-anchor="middle" x="535.813" y="523.165">T{Sat.}</text>
 <svg atv:refpx="282.74" atv:refpy="83.962" height="30" id="configuration_input" transform="matrix(1.2842,0,0,1,0,0)" width="160" x="140.171" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="60.962">
  <atv:argument name="validation" value="String"/>
  <atv:argument name="allowDirectInput" value="Yes"/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="174.5"/>
  <atv:overwrite id="input_label" transform="matrix(0.7787,0,0,1,0,0)" x="197.527"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.7787,0,0,1,0,0)" width="197.472"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.7787,0,0,1,0,0)" width="201.472"/>
  <atv:overwrite id="input_bg" transform="matrix(0.7787,0,0,1,0,0)" width="197.472"/>
  <atv:overwrite id="id_1" transform="matrix(0.7787,0,0,1,0,0)" width="203.472"/>
  <atv:overwrite id="id_0" transform="matrix(0.7787,0,0,1,0,0)" width="205.472"/>
 </svg>
 <svg atv:refpx="401.375" atv:refpy="175.575" height="30" id="prio_input" transform="matrix(0.2312,0,0,1,0,0)" width="160" x="1746.902" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="183.575">
  <atv:argument name="allowDirectInput" value="Yes"/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="174.5"/>
  <atv:overwrite id="input_label" transform="matrix(4.3253,0,0,1,0,0)" x="29.047"/>
  <atv:overwrite id="blinking_frame" transform="matrix(4.3253,0,0,1,0,0)" width="28.992"/>
  <atv:overwrite id="focus_frame" transform="matrix(4.3253,0,0,1,0,0)" width="32.992"/>
  <atv:overwrite id="input_bg" transform="matrix(4.3253,0,0,1,0,0)" width="28.992"/>
  <atv:overwrite id="id_1" transform="matrix(4.3253,0,0,1,0,0)" width="34.992"/>
  <atv:overwrite id="id_0" transform="matrix(4.3253,0,0,1,0,0)" width="36.992"/>
 </svg>
 <text atv:refpx="266.617" atv:refpy="198.575" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_3" text-anchor="start" x="232" y="204.575">T{Priority}</text>
 <text atv:refpx="130.624" atv:refpy="559.483" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_4" text-anchor="end" x="158.104" y="565.483">T{From}</text>
 <text atv:refpx="406.567" atv:refpy="559.483" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_5" text-anchor="end" x="423.718" y="565.483">T{To}</text>
 <svg atv:dynamic="true" atv:refpx="295.345" atv:refpy="618.889" height="30" id="save_button" transform="matrix(1.1875,0,0,1,0,0)" width="80" x="206.713" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="642.889">
  <atv:argument name="label" value="T{Save}"/>
  <atv:argument name="tabIndex" value="60"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="fontSize" value="14"/>
  <atv:overwrite id="id_6" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="button_label_2" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label_1" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.8421,0,0,1,0,0)" x="37.5"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.8421,0,0,1,0,0)" width="91"/>
  <atv:overwrite id="button_bg" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="outer_frame" transform="matrix(0.8421,0,0,1,0,0)" width="95"/>
 </svg>
 <svg atv:dynamic="true" atv:refpx="410.345" atv:refpy="618.889" height="30" id="cancel_button" transform="matrix(1.1875,0,0,1,0,0)" width="80" x="303.555" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.button" y="642.889">
  <atv:argument name="label" value="T{Cancel}"/>
  <atv:argument name="tabIndex" value="61"/>
  <atv:argument name="borderVisible" value="true"/>
  <atv:argument name="extraBorderColor" value="#ffffff"/>
  <atv:argument name="fontSize" value="14"/>
  <atv:overwrite id="id_6" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="button_label_2" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label_1" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_label" transform="matrix(0.8421,0,0,1,0,0)" x="47.5"/>
  <atv:overwrite id="button_symbol_bottom" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol_top" transform="matrix(0.5053,0,0,0.6,0,0)" x="69"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.8421,0,0,1,0,0)" x="37.5"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.8421,0,0,1,0,0)" width="91"/>
  <atv:overwrite id="button_bg" transform="matrix(0.8421,0,0,1,0,0)" width="93"/>
  <atv:overwrite id="outer_frame" transform="matrix(0.8421,0,0,1,0,0)" width="95"/>
 </svg>
 <text atv:refpx="372" atv:refpy="624.387" fill="#ff0004" font-family="Arial" font-size="14" id="message" text-anchor="middle" x="350" y="628.887">&lt;errormessage></text>
 <svg atv:refpx="398.83" atv:refpy="132.01" height="30" id="email_input" transform="matrix(2.7365,0,0,1,0,0)" width="160" x="65.76" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="110.01">
  <atv:argument name="allowDirectInput" value="Yes"/>
  <atv:argument name="tabIndex" value="1"/>
  <atv:overwrite id="id_2" transform="matrix(0.8889,0,0,1,0,0)" width="174.5"/>
  <atv:argument name="validation" value="String"/>
  <atv:overwrite id="input_label" transform="matrix(0.3654,0,0,1,0,0)" x="429.895"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.3654,0,0,1,0,0)" width="429.84"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.3654,0,0,1,0,0)" width="433.84"/>
  <atv:overwrite id="input_bg" transform="matrix(0.3654,0,0,1,0,0)" width="429.84"/>
  <atv:overwrite id="id_1" transform="matrix(0.3654,0,0,1,0,0)" width="435.84"/>
  <atv:overwrite id="id_0" transform="matrix(0.3654,0,0,1,0,0)" width="437.84"/>
 </svg>
 <text atv:refpx="523.359" atv:refpy="76.325" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_9" text-anchor="start" x="491.79" y="82.325">T{Active}</text>
 <svg atv:refpx="604.539" atv:refpy="108.325" height="30" id="active" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2354.87" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="61.325">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="127.604" atv:refpy="75.962" fill="#575757" font-family="Arial" font-size="16" id="id_7" text-anchor="end" x="158.104" y="81.962">T{Name}</text>
 <text atv:refpx="65.301" atv:refpy="331.457" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_10" text-anchor="end" x="158.19" y="337.457">T{Alarm State}</text>
 <text atv:refpx="126.104" atv:refpy="125.01" fill="#575757" font-family="Arial" font-size="16" id="id_11" text-anchor="end" x="158.104" y="131.01">T{E-Mail}</text>
 <svg atv:refpx="399.846" atv:refpy="346" height="30" id="state_3" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="359">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="399.846" atv:refpy="307" height="30" id="state_2" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="320">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="195" atv:refpy="346" height="30" id="state_1" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="359">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="195" atv:refpy="307" height="30" id="state_0" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="320">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="279.5" atv:refpy="335.184" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_24" text-anchor="start" x="232" y="338.684">T{Acknowledged}</text>
 <text atv:refpx="297" atv:refpy="374.529" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_25" text-anchor="start" x="232" y="378.029">T{On Unacknowledged}</text>
 <text atv:refpx="524.587" atv:refpy="332.551" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_26" text-anchor="start" x="445.061" y="338.551">T{On Acknowledged}</text>
 <text atv:refpx="535.783" atv:refpy="371.896" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_27" text-anchor="start" x="445.061" y="377.896">T{Off Unacknowledged}</text>
 <svg atv:refpx="399.846" atv:refpy="385.74" height="30" id="state_5" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="2052.512" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="398.74">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="548.866" atv:refpy="411.24" fill="$FONTCOLOR$" font-family="Arial" font-size="12" id="id_29" text-anchor="start" x="445.061" y="417.24">T{On Off Unacknowledged}</text>
 <svg atv:refpx="358.474" atv:refpy="164.575" height="30" id="prio_oper" transform="matrix(0.3646,0,0,1,0,0)" width="160" x="933.449" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.combobox" y="183.575">
  <atv:argument name="text1" value="T{==}"/>
  <atv:argument name="text1value" value="=="/>
  <atv:argument name="text2" value="T{>=}"/>
  <atv:argument name="text2value" value=">="/>
  <atv:argument value="T{&lt;=}" name="text3"/>
  <atv:argument value="&lt;=" name="text3value"/>
  <atv:argument value="T{&lt;>}" name="text4"/>
  <atv:argument name="text4value" value="!="/>
  <atv:overwrite id="focus_frame" transform="matrix(2.7427,0,0,1,0,0)" width="54.336"/>
  <atv:overwrite id="button_stroke" transform="matrix(2.7427,0,0,1,0,0)" x="33.336"/>
  <atv:overwrite id="id_7" transform="matrix(2.7427,0,0,1,0,0)" x="33.336"/>
  <atv:overwrite id="button_bg" transform="matrix(2.7427,0,0,1,0,0)" x="33.336"/>
  <atv:overwrite id="combobox_label" transform="matrix(2.7427,0,0,1,0,0)" x="23.836"/>
  <atv:overwrite id="blinking_frame" transform="matrix(2.7427,0,0,1,0,0)" width="26.336"/>
  <atv:overwrite id="combobox_bg" transform="matrix(2.7427,0,0,1,0,0)" width="26.336"/>
  <atv:overwrite id="id_1" transform="matrix(2.7427,0,0,1,0,0)" width="56.336"/>
  <atv:overwrite id="id_0" transform="matrix(2.7427,0,0,1,0,0)" width="58.336"/>
 </svg>
 <svg atv:refpx="479.584" atv:refpy="260.911" height="30" id="address_picker" transform="matrix(1.7401,0,0,1,0,0)" width="160" x="195.612" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.picker_address" y="261.911">
  <atv:overwrite id="addresspicker_clickarea" transform="matrix(0.5747,0,0,1,0,0)" x="250.416"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.5747,0,0,1,0,0)" width="274.416"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.5747,0,0,1,0,0)" x="253.166"/>
  <atv:overwrite id="button_bg" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="input_label" transform="matrix(0.5747,0,0,1,0,0)" x="244.416"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="addresspicker_bg" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="id_0" transform="matrix(0.5747,0,0,1,0,0)" width="276.416"/>
  <atv:overwrite id="addresspicker_stroke" transform="matrix(0.5747,0,0,1,0,0)" width="278.416"/>
 </svg>
 <text atv:refpx="271" atv:refpy="276.911" fill="#575757" font-family="Arial" font-size="16" id="id_32" text-anchor="start" x="232" y="282.911">T{Address}</text>
 <script atv:desc="" atv:href="SYSTEM.LIBRARY.PROJECT.DISPLAYSCRIPTS.MailManagement.MailScheduler" atv:name="Mail Scheduler" atv:type="text/ecmascript"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <svg atv:refpx="195" atv:refpy="182.575" height="30" id="prio_act" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="183.575">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="194.47" atv:refpy="260.911" height="30" id="nodes_act" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="960" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="261.911">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <svg atv:refpx="342.951" atv:refpy="245.743" height="30" id="group_act" transform="matrix(0.1875,0,0,1,0,0)" width="160" x="959.733" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.checkbox" y="222.743">
  <atv:argument name="label" value=""/>
  <atv:argument name="tabIndex" value="52"/>
  <atv:argument name="valueOn" value="true"/>
  <atv:argument name="outputValueOn" value="true"/>
  <atv:argument name="outputValueOff" value="false"/>
  <atv:overwrite id="checkbox_item" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_symbol" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="blinking_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="focus_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_bg" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_frame" transform="matrix(5.3333,0,0,1,0,0)"/>
  <atv:overwrite id="checkbox_stroke" transform="matrix(5.3333,0,0,1,0,0)"/>
 </svg>
 <text atv:refpx="263.568" atv:refpy="236.419" fill="$FONTCOLOR$" font-family="Arial" font-size="16" id="id_12" text-anchor="start" x="232" y="242.419">T{Group}</text>
 <svg atv:refpx="479.584" atv:refpy="221.743" height="30" id="group_picker" transform="matrix(1.7401,0,0,1,0,0)" width="160" x="195.613" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.picker_address" y="222.743">
  <atv:argument name="base" value="AGENT.ALARMING.Groups"/>
  <atv:argument name="onDemand" value="No"/>
  <atv:argument name="showBaseVariables" value="No"/>
  <atv:overwrite id="addresspicker_clickarea" transform="matrix(0.5747,0,0,1,0,0)" x="250.416"/>
  <atv:overwrite id="focus_frame" transform="matrix(0.5747,0,0,1,0,0)" width="274.416"/>
  <atv:overwrite id="button_stroke" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="button_symbol" transform="matrix(0.5747,0,0,1,0,0)" x="253.166"/>
  <atv:overwrite id="button_bg" transform="matrix(0.5747,0,0,1,0,0)" x="253.416"/>
  <atv:overwrite id="input_label" transform="matrix(0.5747,0,0,1,0,0)" x="244.416"/>
  <atv:overwrite id="blinking_frame" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="addresspicker_bg" transform="matrix(0.5747,0,0,1,0,0)" width="246.416"/>
  <atv:overwrite id="id_0" transform="matrix(0.5747,0,0,1,0,0)" width="276.416"/>
  <atv:overwrite id="addresspicker_stroke" transform="matrix(0.5747,0,0,1,0,0)" width="278.416"/>
 </svg>
 <svg atv:refpx="220.666" atv:refpy="559.483" height="30" id="start_input" transform="matrix(0.5065,0,0,1,0,0)" width="160" x="355.635" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="544.483">
  <atv:argument name="validation" value="String"/>
  <atv:overwrite id="input_label" transform="matrix(1.9742,0,0,1,0,0)" x="73.101"/>
  <atv:overwrite id="blinking_frame" transform="matrix(1.9742,0,0,1,0,0)" width="73.046"/>
  <atv:overwrite id="focus_frame" transform="matrix(1.9742,0,0,1,0,0)" width="77.046"/>
  <atv:overwrite id="input_bg" transform="matrix(1.9742,0,0,1,0,0)" width="73.046"/>
  <atv:overwrite id="id_1" transform="matrix(1.9742,0,0,1,0,0)" width="79.046"/>
  <atv:overwrite id="id_0" transform="matrix(1.9742,0,0,1,0,0)" width="81.046"/>
 </svg>
 <text atv:refpx="287.528" atv:refpy="559.983" fill="$FONTCOLOR$" font-family="Arial" font-size="12" font-style="italic" id="id_13" x="266.559" y="564.483">HH:mm</text>
 <svg atv:refpx="497.598" atv:refpy="559.483" height="30" id="end_input" transform="matrix(0.5065,0,0,1,0,0)" width="160" x="894.52" xlink:href="SYSTEM.LIBRARY.ATVISE.OBJECTDISPLAYS.Advanced.in_out_value" y="544.483">
  <atv:argument name="validation" value="String"/>
  <atv:overwrite id="input_label" transform="matrix(1.9743,0,0,1,0,0)" x="73.095"/>
  <atv:overwrite id="blinking_frame" transform="matrix(1.9743,0,0,1,0,0)" width="73.04"/>
  <atv:overwrite id="focus_frame" transform="matrix(1.9743,0,0,1,0,0)" width="77.04"/>
  <atv:overwrite id="input_bg" transform="matrix(1.9743,0,0,1,0,0)" width="73.04"/>
  <atv:overwrite id="id_1" transform="matrix(1.9743,0,0,1,0,0)" width="79.04"/>
  <atv:overwrite id="id_0" transform="matrix(1.9743,0,0,1,0,0)" width="81.04"/>
 </svg>
 <text atv:refpx="560.46" atv:refpy="559.983" fill="$FONTCOLOR$" font-family="Arial" font-size="12" font-style="italic" id="id_20" x="539.491" y="564.483">HH:mm</text>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
	<UAObject NodeId="ns=1;s=SYSTEM" BrowseName="1:SYSTEM">
		<DisplayName Locale="en">SYSTEM</DisplayName>
		<Description Locale="en">SYSTEM</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">Objects</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise ExportedNodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60.Mail" ExportedBrowseName="1:Mail" Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY" BrowseName="1:LIBRARY">
		<DisplayName Locale="en">LIBRARY</DisplayName>
		<Description Locale="en">LIBRARY</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT" BrowseName="1:PROJECT">
		<DisplayName Locale="en">PROJECT</DisplayName>
		<Description Locale="en">PROJECT</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS" BrowseName="1:OBJECTDISPLAYS">
		<DisplayName Locale="en">OBJECTDISPLAYS</DisplayName>
		<Description Locale="en">OBJECTDISPLAYS</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols" BrowseName="1:Symbols">
		<DisplayName Locale="en">Symbols</DisplayName>
		<Description Locale="en">Symbols</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAObject NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60" BrowseName="1:60x60">
		<DisplayName Locale="en">60x60</DisplayName>
		<Description Locale="en">60x60</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols</Reference>
			<Reference ReferenceType="HasTypeDefinition">FolderType</Reference>
		</References>
		<Extensions>
			<atvise Upstream="true"/>
		</Extensions>
	</UAObject>
	<UAVariable NodeId="ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60.Mail" BrowseName="1:Mail" DataType="XmlElement" AccessLevel="103" UserAccessLevel="103" Historizing="true">
		<DisplayName Locale="en">Mail</DisplayName>
		<Description Locale="en">Mail</Description>
		<References>
			<Reference ReferenceType="HasComponent" IsForward="false">ns=1;s=SYSTEM.LIBRARY.PROJECT.OBJECTDISPLAYS.Symbols.60x60</Reference>
			<Reference ReferenceType="HasTypeDefinition">ns=1;s=VariableTypes.ATVISE.Display</Reference>
		</References>
		<Value>
			<uax:XmlElement><![CDATA[<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<svg enable-background="new 0 0 50 50" height="60" id="Ebene_1" version="1.1" width="60" x="0px" xml:space="preserve" y="0px" xmlns="http://www.w3.org/2000/svg" xmlns:atv="http://webmi.atvise.com/2007/svgext" xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs/>
 <metadata>
  <atv:parameter behavior="optional" defaultvalue="#000000" desc="symbol color" name="symbolColor" substitute="$SYMBOLCOLOR$" valuetype="color"/>
  <atv:gridconfig enabled="false" gridstyle="lines" height="20" width="20"/>
  <atv:snapconfig enabled="false" height="10" width="10"/>
 </metadata>
 <polygon atv:refpx="77.955" atv:refpy="33.19" fill="none" id="id_2" points="11.875,2.986 11.875,57.341 48.113,57.341 48.113,15.066 36.034,2.986" stroke="$SYMBOLCOLOR$" stroke-width="2.415"/>
 <polyline atv:refpx="121.526" atv:refpy="10.099" fill="$SYMBOLCOLOR$" id="id_3" points="35.43,4.053 35.43,16.133 47.509,16.133" stroke="none" stroke-width="2.415"/>
 <rect atv:refpx="65.596" atv:refpy="14.683" fill="$SYMBOLCOLOR$" height="1.755" id="id_4" stroke="none" stroke-width="2.422" width="16.429" x="16.063" y="13.806"/>
 <rect atv:refpx="65.6" atv:refpy="9.126" fill="$SYMBOLCOLOR$" height="1.755" id="id_6" stroke="none" stroke-width="2.422" width="16.429" x="16.063" y="8.249"/>
 <rect atv:refpx="29.996" atv:refpy="68.956" fill="$SYMBOLCOLOR$" height="1.755" id="id_7" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="19.359"/>
 <rect atv:refpx="30" atv:refpy="164.228" fill="$SYMBOLCOLOR$" height="1.755" id="id_8" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="51.118"/>
 <rect atv:refpx="30" atv:refpy="149.373" fill="$SYMBOLCOLOR$" height="1.755" id="id_9" stroke="none" stroke-width="2.422" width="27.869" x="16.063" y="46.168"/>
 <script atv:desc="" atv:name="" type="text/ecmascript"/>
 <text atv:refpx="54.68" atv:refpy="27.093" fill="$SYMBOLCOLOR$" font-family="Arial" font-size="20" font-weight="bold" id="id_0" transform="matrix(0.5594,0,0,0.5594,4.9576,10.4582)" x="15.752" y="47.236">E-Mail</text>
</svg>
]]></uax:XmlElement>
		</Value>
	</UAVariable>
</UANodeSet>
